这是我两年前(2012-05)的学习笔记。点击直接访问web版页面。
-- 本文不会详细介绍java5以前的多线程开发的知识,而是重点介绍java5以来多线程开发的一些新变化。部分文字、代码都是摘抄、提炼过来的,大家有兴趣可查看(8.相关资料)中的提供的原材料。
本文的主要内容如下:
2.集合类。主要介绍多线程开发中如何使用集合(三种方法)。建议大家关注一下java.util. concurrent包中的相关类。
4.线程池。你需要明确的是: 任务只是一组逻辑工作单元,而线程则是任务异步执行的机制。任务与任务的执行是相分离的。
5.任务异步返回结果和取消关闭。以前的线程实现都是没有返回值的,但java5中,有返回值的线程是如何实现的呢?
6.显式锁。协调共享对象访问,在java5以前用synchronized实现,现在可以用Lock显式的lock()和unlock(),并且有定时锁,读写锁等,你用过吗?
7.栅栏CyclicBarrier、计数器CountDownLatch、信号量Semaphore。这几个类确实让人眼前一亮。你知道它们是做什么的吗?
看完本文,你可以放心的遵循《Effective Java中文版(第2版)》的并发实践了:
第68条:executor和task优先于线程 第69条:并发工具优先于wait和notify