java 为什么有时通过标识符控制线程停止无效

我在主线程改变子线程的flag为false,想通过此达到控制子线程停止的目的,子线程里有一个while循环,循环条件是flag为true,当循环一次较慢时控制有效,但是当循环较快时控制无效了,貌似子线程不再读取flag似的,请教这是怎么回事?应该怎么办?

这个问题描述的有写抽象,建议直接贴代码。

问题描述的有写抽象,建议直接贴代码。