“只要在某个线程中无法检测到重排序情况(即使在其他线程中可以明显地看到该线程中的重排序),那么就无法确保线程中的操作将按照程序中指定的顺序来执行”,这句话是并发编程实战里面的,我的理解是:既然都无法检测到重排序了,那线程的操作应该是按照程序中指定的顺序来执行吧。
大神来解惑一下,对并发并不是很了解,刚接触!
4 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答733 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
我给你举个例子来理解多线程:
你是公司老大,你手下分别由A(架构)/B(开发)/C(测试)/D(美工)四个角色。
你现在命令A去设计架构。
B去执行开发。
C去进行测试。
D去设计UI。
你在下达以上命令后就没你什么事了,这个时候相当于:
你的命令从各个角色的角度来看就是start,即,做本职的工作。
而各线程间可能会出现资源的竞争和制约,也就导致了各个线程的执行是在start前不可预料的。
这就像:
当然也可以进行线程间的顺序控制,比如,只有开发B和美工D同时完成工作后测试C才开始工作。