可見,但不原子,參考:http://www.ibm.com/developerworks/cn/java/j-jtp06197.htmlhtml
java.util.concurrent中的原子變量,參考:java
http://blog.csdn.net/vernonzheng/article/details/8206349編程
常見的參考ConcurrentHashMap深刻分析緩存
三種級別的鎖定:http://blog.csdn.net/lxgwm2008/article/details/8533102多線程
volatile和synchronized的區別與聯繫Synchronize 和 Lock 的區別與用法工具
ReentrantLock性能好,可是synchronized好編程,具體看對比性能
Java裏面線程池的頂級接口是Executor,可是嚴格意義上講Executor並非一個線程池,而只是一個執行線程的工具。真正的線程池接口是ExecutorService。操作系統
ExecutorService在Executor的基礎上增長了一些方法,其中有兩個核心的方法:.net
這兩個方法都是向線程池中提交任務,它們的區別在於Runnable在執行完畢後沒有結果,Callable執行完畢後有一個結果。這在多個線程中傳遞狀態和結果是很是有用的。另外他們的相同點在於都返回一個Future對象。Future對象能夠阻塞線程直到運行完畢(獲取結果,若是有的話),也能夠取消任務執行,固然也可以檢測任務是否被取消或者是否執行完畢。線程
submit()和execute()的區別 ExecutorService中submit和execute的區別
Executors類裏面提供了一些靜態工廠,生成一些經常使用的線程池。
參考:http://blog.csdn.net/vernonzheng/article/details/8299108
http://blog.csdn.net/vernonzheng/article/details/8300031
同步:http://www.cnblogs.com/lintong/p/4371378.html
協做:http://www.cnblogs.com/lintong/p/4371398.html
淺談Java中CyclicBarrier的用法 CountDownLatch和CyclicBarrier的區別