(一)使用volatile来修饰变量,是为了在多线程环境下一个线程修改了这个变量的值,另外的线程再读取这个变量时能够马上体现出修改后的值,而不是从自己的缓存中读取这个变量的值。
但使用volatile时,注意和static一起使用,保证多个Thread下这个变量时唯一的。例如下面的代码中,没有使用static来修饰,t1修改state的值以后,t2中的并没有改变,所以记得要加上static关键字
(二)一个线程在new以后,但没有调用start()方法之前,isAlive()返回的任然是false,wait,sleep等状态返回true,run方法里面的程序体执行完以后,isAlive返回false。
(三)线程的run方法体执行完以后,线程类里面定义的方法还是可以执行的。如下面的代码,run方法执行完以后,say()方法还是可以继续执行的。