Java并发包最佳实践是什么?
并发包里东西挺多但是感觉很多作用都挺像,平时工作中常用的哪些啊,阻塞队列、并发容器吗。
线程池算是基础,常用。
Countdownlatch/cyclicbarrier/fork-join框架看上去完全可以用jdk8的并行流代替了。
同步的话,synchronizd/lock/semaphore其实干的都是一件事。。AQS和阻塞队列看上去也很像。。
那什么时候用阻塞队列什么时候用synchronizd。这阻塞队列不就是消息传递方式吗,比共享内存手动同步的方式用起来应该不容易出错吧。。
至于原子类和volatile,应该是平时写代码不建议用的吧,感觉太底层了。
我看的书啊,只介绍了一大堆并发工具,都不介绍该在什么时候用什么。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果只是常规业务逻辑的话,基本是用不到的
库和框架有的会用到
1.不懂就问,Countdownlatch/cyclicbarrier 是如何被jdk8 代替的,是否有具体案例,闭锁 和 回环栅栏是用于特定场合的,不明白 和 jdk8 的并行流有什么冲突,你的意思是想重写并行流的搜集器???
2.synchronizd/lock/semaphore其实干的都是一件事 ?他们之间区别还是有很多的, lock能够 实现公平性,非块状结构,超时,响应中断 等操作,具体可以看api,semaphore 可以 同时发放多个 许可,synchronize做不到,aqs 是框架,提供最基本的阻塞需求而已。
3.至于原子类和volatile,应该是平时写代码不建议用的吧感觉太底层了?这个如果写多线程 还是要用的,如果没踩坑,估计觉得没啥,多被坑几次,感觉就会重视起来了吧