《Effective Java》阅读笔记66 同步访问共享的可变数据
-
关键字synchronized可以保证在同一时刻只有一个线程可以执行某个方法或代码块。
-
Java规范保证对一个变量的读操作或者写操作是原子性(atomic,注意 i++是非原子性的,64位的long型或double型变量的读写操作也是非原子性的),但并不保证一个线程写入的值对另一个线程是可见的。
参考 -
避免使用Thread.stop()方法,而是采用轮询(poll)机制来终止一个线程。
-
如果只需要线程间的交互通信,而不需要互斥,可以使用volatile关键字。