Think in Java(十八):并发

来源:互联网 发布:mac邮箱 imap无法连接 编辑:程序博客网 时间:2024/04/26 12:43
1. 线程池
CacheThreadPool:(建议使用)
FixedThreadPool 使用有限的线程集来执行所提交的任务,可以限制线程的数量
SingleThreadExecutor: 线程数量为1的FixedThreadPool  任何时刻都只有一个线程在运行

2. yield:给线程调度机制一个暗示:你的工作已经做的差不多了,可以让别的线程使用CPU了
不过这只是一个暗示,没有任何机制保证它将会被采纳

3. join: 一个线程可以在其他线程之上调用join方法,其效果是等待一段时间直到第二个线程结束才继续执行。

4. 使用lock()和unlock()的好处:
使用synchronized关键字,当失败时,就会抛出一个异常,你没有机会做任何清理工作,使用显式lock,可以在finally子句中维护正确状态
显式lock对象在加锁和释放锁方面,可以实现更细粒度的控制

5. 像Vector和Hashtable这类早期容器具有许多synchronized方法,当他们用于非多线程的应用程序中,便会导致不可接受的开销

6. ConcurrentHashMap允许并发的读取和写入
0 0
原创粉丝点击