Java同步器

2013年11月21日 由 Creater 留言 »

今天看了下Java中的同步器,比起我经常在linux下使用的C/C++实现的System V,Posix同步器来说,功能之强大,内容之丰富。

  1. 信号量(Semaphore),这个不管哪种语言的同步器中都少不了它。u=3393496060,2979483388&fm=21&gp=0
  2. 障栅(CyclicBarrier),当大量线程都达到一个集合点时,线程继续执行或者执行指定的Action。
  3. 交换器(Exchanger),一个线程填缓冲区,另外一个消耗缓冲区中的数据,都完成后,相互交换缓冲区(双向的过程)。
  4. 同步队列(SynchronousQueue),第一个线程调用put将数据放入该同步队列并阻塞,第二个线程调用take取出数据后阻塞。接着继续第一个put,第二个take(单向的过程)。
  5. 倒计时门栓(CountDownLatch),该同步器不可重复使用,countDown可以减少门栓数目,门栓减少为0就不能重用了。需要工作线程等待,准备工作线程在准备完成后减少门栓数目,这时候工作线程便可以通过了。

真的是丰富啊……………………..

广告位

发表评论

你必须 登陆 方可发表评论.