并发编程建议

1.给线程命名这样可以帮助调度。

2.使用不可变类,把有属性和类都是final不可变的,可保证线程安全。

3.总是按照一个全局的固定顺序获取多把锁,可以避免死锁的产生,实例可以参照经典的哲学家就餐问题。

4.最小化同步范围,而不是将整个方法同步,只对关键部分做同步。

5.分段锁:concurrentHashMap就是采用这种方式。

6.如果可以更偏向于使用volatile面不是synchronized.

7.使用更高层次的并发工具,而不是使用wait()和notify()来实现线程间通信,如blockingQueue,CountDownLatch及Semeaphore

8.优先使用并发集合,而不是对集合进行同步,并发集合能提供更好的可扩展性。

9.高并发场景下,慎用各种框架,直接到Servlet层最好。

你可能感兴趣的:(并发编程建议)