如何使用线程计算不同输出的确切数量
Posted
技术标签:
【中文标题】如何使用线程计算不同输出的确切数量【英文标题】:How can one calculate the exact number of different outputs using threads 【发布时间】:2022-01-04 18:44:55 【问题描述】:假设我有以下功能:
所以如果我运行 3 个不同的线程,它们的工作方式如下: 线程 1 运行 f1,线程 2 运行 f2,线程 3 运行 f3
如何计算不同输出的最大数量? (您可以测试上下文切换的所有可能组合,但这太过分了)
我发现了 12 种可能的结果: 12,10,0,20,21,6,5,1,16,11,22 那么,如何知道最多有 12 个不同的输出呢?
【问题讨论】:
请不要显示代码图片。 【参考方案1】:假设v
是全局性的,您就有了数据竞争,这是未定义的行为。
您的程序可能会崩溃,或输出任何数字(不仅仅是您列出的 12 个)。如果这是一个家庭作业问题,那么提出这个问题的人根本不知道自己在做什么。
要了解可能发生的情况,请阅读 this 和 this。
【讨论】:
我目前正在学习“操作系统”课程,很遗憾这是我的一篇论文,很遗憾听到我的教授不知道他在做什么:(,谢谢你的帮助!以上是关于如何使用线程计算不同输出的确切数量的主要内容,如果未能解决你的问题,请参考以下文章