public class Test {
// 如果此处的变量加上volatile,变量保持可见性,下面的m end会被打印
boolean runnig = true;
void m() {
System.out.println("m start");
// 如果此处部位打印语句,线程会一直卡主不会打印下面的m end
while (runnig) {
System.out.println(“start”);
}
System.out.println(“m end”);
}
public static void main(String[] args) {
Test t = new Test();
new Thread(t::m, “t1”).start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
t.runnig = false;
}
}