JAVA 并发

java5以后,

  synchronized和wait,notify;

  改为了Lock和Condition.await,Condition.signal

 

semaphore 信号灯工具

维护当前访问的线程数;使用例子:能控制访问的最大线程数

 

cyclicbarrier 循环障碍工具

表示大家彼此等待,只有同时到达某一状态后,才一起进入下一个工作步骤。类似于任务调度的管理器啊。

 

countDownLatch等待N个任务分别执行完去唤醒他。

CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。

 

Exchanger  用于交换数据

必须两个进程同时运行到同处时,才进行交换动作

 

可阻塞队列

ArrayBlockingQueue<E>类--FIFO阻塞队列; SynchronousQueue<E>--其中每个插入操作必须等待另一个线程的对应移除操作 ,反之亦然;

 

能够维持固定大小的队列,不能执行的会被阻塞住。put()放,take()取

 

同步集合

比如ConcurrentHashMap,CopyonWriteArrayList多线程下,能维护集合同步,比如iterator的行走,CopyonWriteSet,

 

HashSet就是用的HashMap,只是用的Key,没用它的value.

posted @ 2012-08-14 09:25  jiuzhongguo  阅读(255)  评论(0编辑  收藏  举报