代码中比较容易出现bug的场景: 不一致的同步,直接调用Thread.run,未被释放的锁,空的同步块,双重检查加锁,在构造函数中启动一个线程,notify或notifyAll通知错误,Object.wait和Condition.await未在同步方法或块中调用,把Lock当锁用,调用Condition.wait方法,在休眠或等待时持有锁,自旋循环. 1.多线程可以提高资源的利用率,可以充分利用现代多核处理器的特性,让每个线程负责处理同类型的任务,更加容易维护,同时通过异步处理提高响应性. 2.…