下图:
我没有用volatile修饰,在线程中起一个新的线程,在主线程睡眠15秒后,将run改为false,另一个线程就停了,这是不是说明run是线程可见的
到底是哪里错了...
下图:
我没有用volatile修饰,在线程中起一个新的线程,在主线程睡眠15秒后,将run改为false,另一个线程就停了,这是不是说明run是线程可见的
到底是哪里错了...
因为你的线程里用到log.debug打印了信息,而打印处理的底层代码用到同步锁,所以线程会刷新本地的变量副本
你把while(run)循环的log.debug注释掉再执行试试看