德勒
线程是一次完全运行一个语句还是该语句可能被拆分?
例如,在下面的语句中:
public void run() {
System.out.println(aString + ": " + ++index);
}
可能的执行命令是什么?
拉维(Ravi K Thapliyal)
不,不能保证aThread
会被抢占,因此您不能假设语句会自动完成。实际上,甚至您的预增量++index
操作也无法保证不间断地完成(我们这样做的原因AtomicInteger
)。
枚举可能的执行顺序可能没有用,因为它们会不断从程序的一次运行更改为另一次运行(假设还有其他线程在运行)。这就是为什么我们要使用Lock和同步来对多线程代码进行某种程度的控制。
有关更多详细信息,请参见并发。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句