本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
FutureTask的使用示例
今天看书,有关于 FutureTask 的介绍,感觉还蛮有意思的,可以用它来做一些比较花时间的事情。下面打个通俗的比方来说明一下它的用处:
比如,早上一大早的去公交站台等公交,但那该死的公交20分钟才一班。如果一直死等公交,那么这20分钟无疑就被浪费了。我们可以利用这20分钟,去买个韭菜饼,再买一盒豆浆,然后一边吃一边等。这样就明显提高了时间的利用率。
下面给出一个段简单的代码来说明一下 ...
并发锁及java.util.concurrent包浅析
我们在处理并发操作的时候经常使用锁机制,大家常用的synchronized和Lock.
1.二者使用方式有所不同:
synchronized可以在方法前或者代码块中,synchronized是java中的内置锁,由jvm控制锁的释放。
Lock使用在代码块中,加锁之后需要显示的释放,一般在finally中释放锁,主要有两种锁ReentrantLock和ReentrantR ...
java.util.concurrent介绍 (转载)
本文转载自:http://www.cnblogs.com/sarafill/archive/2011/05/18/2049461.html
java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建 ...
java.util.concurrent(一) 并发集合类
1、LinkedBlockingQueue
阻塞队列、线程安全,可在构造方法参数中指定容量、默认容量为Integer.MAX_VALUE,实现了BlockingQueue接口以及Collection和Ite ...
ConcurrentHashMap实现分析
java5中新增了ConcurrentMap接口和它的一个实现类ConcurrentHashMap.该类在多线程并发情况下的效率要比HashTable和Collections.synchronizedMap()返回的map效率要高。原因是它的锁实现的很“机智”。
HashTable和Collections的内部类SynchronizedMap里的同步,都是用synchronized来实现的,每次都是 ...
Java多线程包之读写锁
简单的并发控制可以通过synchronized关键字来完成。
synchronized通过锁定对象,从而实现并发的控制。
但是遇到一下一种情况,就会出现意想之外的结果。
一般来说,我们要实现写入和写入互斥,读取和写入互斥,读取和读取互斥,
在set和get方法加入sychronized修饰符:
public synchronized void set(int data ...
Java多线程包之BlockingQueue
在hadoop底层代码中,会看到有BlockingQueue的使用。
作为了解配置调优的作用,我也来了解一下BlockingQueue的使用。
BlockingQueue的核心方法:放入数据: offer(anObject):表示如果可能的话,将anObject加到BlockingQueue里,即如果BlockingQueue可以容纳, 则返回true,否则返回false.(本方 ...
线程池简单例子及分析
关于概念什么的我也是看别人的blog:
http://blog.csdn.net/xiaoxiaohacker/article/details/17525799
http://blog.csdn.net/jeffhtlee/article/details/7851120
http://blog.csdn.net/XSL1990/article/details/18564097
...
AQS源码阅读理解(uncompleted)
有head和tail
当acquire*操作的时候,如果我们定义的资源限制操作返回false时,会在tail端加入一个新的节点(Node里面的所有基础属性都是volatile,用CAS设置tail指针)。
然后利用LockSupport.part(this)阻塞。
当release的时候,如果我们定义的资源操作返回true,会将head节点的下一个SIGNAL节点的thread唤醒。
被 ...
java.util.concurrent介绍
java.util.concurrent介绍
java.util.concurrent.atomic 是类的小工具包,支持在单个变量上解除锁定的线程安全编程。事实上,此包中的类可将 volatile 值、字段和数组元素的概念扩展到那些也提供原子条件更新操作的类,其形式如下: boo ...
java的concurrent用法详解
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程 ...
BlockingQueue阻塞队列分析(一)-ArrayBlockingQueue和LinkedBlockingQueue
BlockingQueue接口
BlockingQueue接口继承自Queue接口:
public interface BlockingQueue<E>extends Queue<E>
与Queue队列相比,它是线程安全的。添加和移除元素有四类方式,其中add()、remove()、offer()、poll()、element()、peek()方法继承自Queue。 ...
java.util.concurrent学习笔记
concurrent在线文档:
http://www.cjsdn.net/Doc/JDK50/java/util/concurrent/Executors.html
http://www.cjsdn.net/Doc/JDK50/java/util/concurrent/ScheduledExecutorService.html
java.util.concurrent包主要接口和类: ...
JDK Concurrent并发线程池使用初探
1、什么是并发
已知:多个进程或线程同时(或者说在同一段时间内)访问同一资源会产生并发问题。
1.1并发程序:
并发程序设计(concurrent programming)是指由若干个可在同一时间段执行的程序模块组成程序的程序设计方法。这种可并发执行的程序模块称为进程。进程由数据和机器指令和堆栈组成。组成一个程序的多个进程可以同时在多台处理器上并行执行,也可以在一台处理器上夹插执行。采用并发程序设计 ...
源码剖析之CopyOnWriteArrayList
CopyOnWriteArrayList:jdk1.5新增的线程安全的ArrayList实现。
使用场景:读取频繁,写较少。
理由:底层的安全性 本质上是依赖于线程读取的数据副本来实现的。因此每次写都是要复制底层数组数据的,如果写频繁势必会造成大量的性能消耗。
如果写非常频繁,那么可以根据实际情况选择:vector 或者Collections.synchronizedList获取同步保证。
1、底 ...