三条件 两个处理共享变量 一个修改中 另一个介入 没有共享 Multics(1969年)进程共享内存 Multics基于PL/I和汇编编写 UNICS(1970年)进程不共享内存 UNIX10年后,线程共享进程内存 Actor模型(1973年), 不共享内存,传递消息,异步 Erlang, Scala 共享内存但不修改 haskell所有变量,c++ const变量, scala val变量, java immutable(private属性没有setter) 不介入修改 线程协作式 Ruby的Fibre, python/js的generator 不便介入标志 锁 软件事务内存