Think in Java(十八):并发

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值