无锁算法CAS概述 JDK5.0以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent包中,是专门用于多线并发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发应用程序。主要包含原子量、并发集合、同步器、可重入锁,并对线程池的构造提供了强力的支持。 .....
分类:
其他好文 时间:
2014-09-11 16:43:12
阅读次数:
256
阻塞
非竞争的同步可以完全在JVM中处理,竞争的同步则可能需要操作系统的介入,从而增加开销。当在锁上发生竞争时,竞争失败的线程肯定会阻塞。JVM在实现阻塞行为时,可以采用自旋等待,就是通过循环不断的尝试获取锁。直到成功。或者通过操作系统挂起被阻塞的线程。这两种方式的效率高低取决于上下文切换的开销以及在成功获取锁之前需要等待的时间。如果等待时间较短,采用自旋等待的方式,如果时间较长,则采用操作系统...
分类:
编程语言 时间:
2014-09-10 22:30:41
阅读次数:
230
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程——闭锁CountDownLatch 与 栅栏CyclicBarrier概述第1部分 闭锁第2部分 栅栏参考第1部分 闭锁 闭锁是一种同步工具类,可以延迟线程的进度直到其到达....
分类:
其他好文 时间:
2014-09-09 15:31:18
阅读次数:
346
动态的锁顺序死锁
在协作对象之间发生的死锁
死锁的避免与诊断
支持定时的锁
通过线程转储信息来分析死锁
其它活跃性危险
饥饿
糟糕的响应性
活锁...
分类:
编程语言 时间:
2014-09-09 13:13:08
阅读次数:
225
为什么GUI是单线程的
避免活跃性危险
死锁
线顺序死锁
动态的锁顺序死锁...
分类:
编程语言 时间:
2014-09-07 23:50:06
阅读次数:
421
线程工厂
在调用构造函数后再定制ThreadPoolExecutor
扩展ThreadPoolExecutor
递归算法的并行化...
分类:
编程语言 时间:
2014-09-07 22:30:15
阅读次数:
328
保证并发安全性的方式有三:·不共享·不可变·同步前两种方式相对第三种要简单一些。这一篇不说语言特性和API提供的相关同步机制,主要记录一下关于共享的一些思考。共享(shared),可以简单地认为多个线程可以同时访问某个对象。如果仅仅在单线程内进行访问则不存在同步的问题..
分类:
编程语言 时间:
2014-09-07 03:25:15
阅读次数:
292
设置线程池的大小
配置ThreadPoolExecutor
管理队列任务
饱和策略...
分类:
编程语言 时间:
2014-09-06 22:33:34
阅读次数:
353