多线程开发注意问题
Posted yjxyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程开发注意问题相关的知识,希望对你有一定的参考价值。
- 给线程起有意义的名字,这样方便找Bug
- 缩小同步范围,从而减少锁的争用,例如对于 synchronized,应该尽量使用同步块而不是同步方法
- 多用同步工具少用 wait() 和 notify()。首先,CountDownLatch, CyclicBarrier, Semaphore 和Exchanger 这些同步类简化了编码操作,而用 wait() 和 notify() 很难实现复杂控制流;其次,这些同步类是由最好的企业编写和维护,在后续的 JDK 中还会不断优化和完善。
- 使用BlockingQueue实现生产者消费者问题
- 多用并发集合少用同步集合,例如应该使用 ConcurrentHashMap 而不是 Hashtable
- 使用本地变量和不可变类来保证线程安全
- 使用线程池而不是直接创建线程,这是因为创建线程代价很高,线程池可以有效地利用有限的线程来启动任务
以上是关于多线程开发注意问题的主要内容,如果未能解决你的问题,请参考以下文章