Java并发包最佳实践是什么?

并发包里东西挺多但是感觉很多作用都挺像,平时工作中常用的哪些啊,阻塞队列、并发容器吗。

线程池算是基础,常用。

Countdownlatch/cyclicbarrier/fork-join框架看上去完全可以用jdk8的并行流代替了。

同步的话,synchronizd/lock/semaphore其实干的都是一件事。。AQS和阻塞队列看上去也很像。。

那什么时候用阻塞队列什么时候用synchronizd。这阻塞队列不就是消息传递方式吗,比共享内存手动同步的方式用起来应该不容易出错吧。。

至于原子类和volatile,应该是平时写代码不建议用的吧,感觉太底层了。

我看的书啊,只介绍了一大堆并发工具,都不介绍该在什么时候用什么。。

阅读 1.9k
2 个回答

如果只是常规业务逻辑的话,基本是用不到的
库和框架有的会用到

1.不懂就问,Countdownlatch/cyclicbarrier 是如何被jdk8 代替的,是否有具体案例,闭锁 和 回环栅栏是用于特定场合的,不明白 和 jdk8 的并行流有什么冲突,你的意思是想重写并行流的搜集器???
2.synchronizd/lock/semaphore其实干的都是一件事 ?他们之间区别还是有很多的, lock能够 实现公平性,非块状结构,超时,响应中断 等操作,具体可以看api,semaphore 可以 同时发放多个 许可,synchronize做不到,aqs 是框架,提供最基本的阻塞需求而已。
3.至于原子类和volatile,应该是平时写代码不建议用的吧感觉太底层了?这个如果写多线程 还是要用的,如果没踩坑,估计觉得没啥,多被坑几次,感觉就会重视起来了吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题