1.在使用Lock unLock的时候,如果获取所有的锁失败了,进行释放锁的时候,可能由于出现了同时释放的问题导致了活锁,需要在无论时候,只要释放资源,就加上一个Thread.sleep(RandomTime)
2.在尝试使用无锁类进行更新数值的时候,可能由于没有正确的每次都获取新数值而导致的无限循环问题(就是获取值的地方,没放在while中)
3.尽可能的使用singalAll(),而不是signal()
4.回调问题时候,需要考虑是谁进行的回调的,常见的就是CyclicBarrier,在其中进行回调的是讲计数器减为0的那个函数,所以要注意这一点
5.使用一个线程池,就需要考虑到共享性能的问题,如果某几行代码使用了非常漫长的阻塞式IO,那么可能导致所以的线程都阻塞,从而影响整个系统的性能