并发(concurrency)一个并不陌生的词,简单来说,就是cpu在同一时刻执行多个任务. 而Java并发则由多线程实现的. 在jvm的世界里,线程就像不相干的平行空间,串行在虚拟机中.(当然这是比较笼统的说法,线程之间是可以交互的,他们也不一定是串行.) 多线程的存在就是压榨cpu,提高程序性能,还能减少一定的设计复杂度(用现实的时间思维设计程序). 多线程会引出很多难以避免的问题, 如死锁,脏数据,线程管理的额外开销,等等.更大大增加了程序设计的复杂度. 死锁和脏数据就是典型的线程安全问题…