我必须解决这个问题,但我真的不知道怎么开始!
我的意思是,我认为第a部分的解决方案可能是,如果线程s正在运行,并且未知()返回500,那么线程t将无法继续,然后在499轮之后,线程s也将终止,因此这可能是程序结束的执行。但是,如果未知()在返回500后,下一轮返回499,会发生什么?线程t可以重新启动吗?
我真的不知道怎么解决它!
如果有人能解释我,真的很感激!这门课程是在线的,所以我不知道我的课程伙伴,我也不知道该找谁帮忙。

发布于 2021-10-14 13:21:38
线程的执行仅由n1的值控制。不管未知的返回值是什么,它都将终止,前提是未知返回一个数值。
线程t的执行仅由n2的值控制。在线程的执行过程中,变量n2会以未知的方式受到影响,但是线程最终会终止。一旦线程终止,那么n2只受线程t的影响,其值最终将超过线程2的终止值500。
此解决方案的关键之一是,由int类型表示的计算机整数值没有无限范围。递增这样的int变量最终会导致超过500的值。
https://stackoverflow.com/questions/69570018
复制相似问题