并发编程
bubaxiu
这个作者很懒,什么都没留下…
展开
-
Java并发编程-发布和逸出
构造方法内this引用逸出原创 2014-01-11 21:05:09 · 723 阅读 · 0 评论 -
Java并发编程-ThreadLocal
在java多线程中,为保证可变数据线程安全一种方式是使用同步的形式,另外一种方式是控制数据不被多线程共享--这种数据控制方式叫做数据线程封闭。数据的线程封闭通常使用局部变量(即数据属于线程私有)或者ThreadLocal(ThreadLocal对象原则上设计其包装的数据是每个线程对应一个值,即通常所说每个线程保存一个ThreadLocal副本)。根据自己理解的谈谈ThreadLocal的一般用法和原创 2014-01-13 23:08:52 · 633 阅读 · 0 评论 -
Java并发编程-Synchronizers
Latch,Semaphore,Barrier是java中的三大同步工具类。首先了解下他们的特性和应用场景:{ps:有些东西纯属个人理解,有不正确的地方请指教} * Latch(门闩):闭锁是一个同步工具类,可以延迟线程执行直到所有的线程都到达一个状态。 * 作用: * 1、确保某个计算在其所需要的所有资源都初始化后再执行; * 2、确保某个服务在其他所依赖的服务都执行完毕后再原创 2014-01-16 21:18:51 · 798 阅读 · 0 评论 -
java并发--Exchanger
为了说明 Exchanger 的使用,本文假设一种场景。假设有一个连接缓存队列,有一个连接器负责创建连接,创建的连接会存储在队列里。另外一个释放连接器可以释放连接,从队列里移除连接。连接器每次会随机地创建 1 或 2 个连接。释放连接器只能每次释放 1 个连接。最后肯定会有连接队列满的时候,那时就可以进行连接队列的测试了。要实现这一种场景,可以使用 Exchanger 来实现。可以查看代码转载 2015-03-14 22:41:41 · 514 阅读 · 0 评论 -
java并发--并发集合
在 Java 编程的早期阶段,位于 Oswego 市的纽约州立大学(SUNY) 的一位教授决定创建一个简单的库,以帮助开发人员构建可以更好地处理多线程情况的应用程序。这并不是说用现有的库就不能实现,但是就像有了标准网络库一样,用经过调试的、可信任的库更容易自己处理多线程。在 Addision-Wesley 的一本相关书籍的帮助下,这个库变得越来越流行了。最终,作者 Doug Lea 决定设法让它成转载 2015-03-14 23:32:14 · 495 阅读 · 0 评论 -
java多线程--避免死锁
在有些情况下死锁是可以避免的。本文将展示三种用于避免死锁的技术:加锁顺序加锁时限死锁检测加锁顺序当多个线程需要相同的一些锁,但是按照不同的顺序加锁,死锁就很容易发生。如果能确保所有的线程都是按照相同的顺序获得锁,那么死锁就不会发生。看下面这个例子:Thread 1: lock A lock BThread 2: wait for A转载 2015-03-15 10:36:17 · 803 阅读 · 0 评论