使用本地变量
使用不可变类
比如String Integer 等, 不可变类一旦创建就不可变了, 不可变类可以降低代码中需要的同步数量
最小化锁的作用域范围: S=1/(1-a+a/n)
使用线程池的Executor, 而不是直接 new Thread执行
创建一个线程的代价是昂贵的,如果你想要一个可伸缩的Java应用,请使用线程池来管理线程
宁可使用同步也慎用线程的wait和notify
尽量思考使用JUC工具包中的CountDownLatch,Semaphore,CyclicBarrier等工具类来解决你的应用场景
使用BlockingQueue实现生产-消费模式
使用并发集合更优于加了锁的同步集合
使用Semaphore创建有界的访问
即 控制有限制访问数量的公共资源的访问数量,如数据库