
Concurrent Programming
Torreson
学历代表过去能力代表现在学习力代表未来
展开
-
浅析Java中CountDownLatch用法
/** CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞程序继续执行 CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。下面以一个模拟运动员比赛的例子加以说明。 */ im转载 2014-10-29 12:04:29 · 669 阅读 · 0 评论 -
Java CAS 和ABA问题
原文:http://www.cnblogs.com/549294286/p/3766717.html 独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。 乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。 一、CAS 操作 乐观锁用到的机制就是CAS,Comp转载 2015-08-09 18:05:21 · 954 阅读 · 0 评论 -
非主流并发工具之 ForkJoinPool
原文:http://wankunde.iteye.com/blog/1521042 ForkJoinPool 是 Java SE 7 新功能“分叉/结合框架”的核心类,现在可能乏人问津,但我觉得它迟早会成为主流。分叉/结合框架是一个比较特殊的线程池框架,专用于需要将一个任务不断分解成子任务(分叉),再不断进行汇总得到最终结果(结合)的计算过程。比起传统的线程池类ThreadPoo转载 2015-08-09 14:58:02 · 821 阅读 · 0 评论 -
Java并发的四种风味:Thread、Executor、ForkJoin和Actor
本文由 ImportNew - shenggordon 翻译自 Oleg Shelajev。欢迎加入翻译小组。转载请见文末要求。 这篇文章讨论了Java应用中并行处理的多种方法。从自己管理Java线程,到各种更好几的解决方法,Executor服务、ForkJoin 框架以及计算中的Actor模型。 Java并发编程的4种风格:Threads,Executors,ForkJoin和A转载 2015-07-04 13:12:59 · 715 阅读 · 0 评论 -
java同步机制对象锁使用方式比较
class Sync { private byte[] lock = new byte[0]; public void sync() throws InterruptedException { synchronized (lock) { runThread(); } } public void thi原创 2015-04-09 14:16:59 · 2285 阅读 · 0 评论 -
(转)对Thread.interrupt()方法很详细的介绍
http://blog.sina.com.cn/s/blog_6ca570ed01016mti.html 在JDK1.0中,可以用stop方法来终止,但是现在这种方法已经被禁用了,改用interrupt方法。 Thread.interrupt()方法不会中断一个正在运行的线程。它的作用是,在线程受到阻塞时抛出一个中断信号,这样线程就得以退出阻塞的状态。更确切的说,如果线程被转载 2016-02-16 15:09:24 · 568 阅读 · 0 评论 -
CyclicBarrier的用法
原文:http://www.cnblogs.com/liuling/archive/2013/08/21/2013-8-21-01.html CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 b转载 2014-12-21 13:23:27 · 582 阅读 · 0 评论 -
Java之Semaphore
原文:http://blog.youkuaiyun.com/shihuacai/article/details/8856526 一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行转载 2014-12-21 13:32:05 · 531 阅读 · 0 评论 -
BlockingQueue详解
本例介绍一个特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间时才会被唤醒继续操作。 本例再次实现前面介绍的篮子转载 2014-12-21 13:10:04 · 705 阅读 · 0 评论