所以我对这个问题很坦率。我在任务的竞争条件方面遇到了很多问题。
我已经完成了其他所有事情,但我仍然难过。 我的想法是将从文件中提取的数据存储到数据结构中,并将该共享数据集拆分为多个类别。 每个线程处理一个特定的类别。 然后,每个“类别线程”都会运行并处理给定的数据,并在稍微更改后将其添加到更大的全局数据结构中。 在每个线程完成并“加入”后,我打印出最终结构。
但是当它打印出来时,似乎全局数据的所有变化都依赖于线程访问全局数据的顺序,而我的线程只是“竞相”改变全局数据。
我的问题是我不确切知道导致竞争条件的原因是什么,在我对它们执行任何写操作之前,我已经使用互斥锁锁定了全局和共享数据,所以我不明白发生了什么。
这是很多代码,所以如果你想要它,我会尝试稍后发布下面的相关部分。我不想发布代码因为那只是你为我做这部分hw。我知道你们不“解决功课”,我不希望这样。我真的很沮丧,只想知道我在竞争条件下忽略了什么。