并发编程练习

Concurrent Programming Exercise

我必须解决这个问题,但我真的不知道如何开始!

我的意思是,我认为 a 部分的解决方案可能是,如果当线程 s 为 运行 且 unknown() returns 500 时,线程 t 将无法继续,然后在 499 轮之后线程也将终止,因此这可能是程序结束的执行。但是,如果 unknown() 在 returning 500 下一轮 return 499 之后会发生什么?线程可以重新启动吗?

真不懂怎么解决!

如果有人能向我解释,我将不胜感激!该课程是在线的,所以我不认识我的课程伙伴,也不知道该向谁寻求帮助。

线程的执行仅由 n1 的值控制。无论 unknown 的 return 值是多少,它都会终止,假设 unknown return 是一个数值。

线程 t 的执行仅由 n2 的值控制。变量 n2 在线程 s 执行期间以未知方式受到影响,但是线程 s 最终将终止。一旦线程 s 终止,则 n2 仅受线程 t 的影响,其值最终将超过线程 2 的终止值 500。

此解决方案的关键之一是 int 类型表示的计算机整数值没有无限范围。增加这样一个 int 变量最终会导致超过 500 的值。