标签:style blog http io ar color 使用 sp java
一、中断模型:http://ifeve.com/java-interrupt-mechanism/
1. 协作制度, 你要我中断,只是给我一个信号,我啥时候中断,是我的事情。
比如 T1调用T2.interrupt(), T2 如果没有写 if (Thread.intterrupted()) { return or do something}或者 if ( Thread.isintterupted()) { return or do something} T2鸟都不鸟T1
而且 如果T2 在 if() { do something} 中 do nothing或者 嘲讽一下, T1也毫无办法。
2 . API 极易混淆
(static) Thread.interrupted() = Thread.currentThread.isInterrupted(true) 会清除中断标记 , static方法 且名字很容易混淆
(obj) thread.isIntterrupted(bool) 查看是否有中断标记
(obj) thread. interrupt() =》 设置 thread.的中断标记
3. 中断不一定非要用 catch (IntterupttedException) 获取。
可以实施检查 Thread.currentThread().isintteruppted()
sleep/wait的时候,因为自己没有运行权限,所以才需要 catch (IntterupttedException)
二、深入理解JAVA内存模型:http://ifeve.com/java-memory-model-7
三、JVM 并发性: Java 和 Scala 并发性基础 :http://www.ibm.com/developerworks/cn/java/j-jvmc1/index.html
四、CAS基础- 深入Java对象的地址的使用分析 :http://www.jb51.net/article/36410.htm
五、常见锁分类:自旋锁、排队自旋锁、MCS锁、CLH锁
这篇文章最关键的几点:
1. 普通自旋锁的弱点
公平性,多CPU同步的问题
多cpu同步问题参见:
2. CLH的设计目的
公平性,多核CPU自旋位置(自己的node上)
当然 这与AbstractQueuedSynchronizer 中间的CLH不是一个实现方法
六、非阻塞算法在并发容器中的实现 、不变式与暂时非一致性:http://www.ibm.com/developerworks/cn/java/j-lo-concurrent/index.html
七、NIO容器
1. ConcurrentHashMap:
2. ConcurrentLinkedQueue、LinkedBlockingQueue
http://www.cnblogs.com/linjiqin/archive/2013/05/30/3108188.html
Java 并发编程基础导航
标签:style blog http io ar color 使用 sp java
原文地址:http://www.cnblogs.com/njuzhoubing/p/4141869.html