1.给线程命名这样可以帮助调度。
2.使用不可变类,把有属性和类都是final不可变的,可保证线程安全。
3.总是按照一个全局的固定顺序获取多把锁,可以避免死锁的产生,实例可以参照经典的哲学家就餐问题。
4.最小化同步范围,而不是将整个方法同步,只对关键部分做同步。
5.分段锁:concurrentHashMap就是采用这种方式。
6.如果可以更偏向于使用volatile面不是synchronized.
7.使用更高层次的并发工具,而不是使用wait()和notify()来实现线程间通信,如blockingQueue,CountDownLatch及Semeaphore
8.优先使用并发集合,而不是对集合进行同步,并发集合能提供更好的可扩展性。
9.高并发场景下,慎用各种框架,直接到Servlet层最好。











网友评论