英语不是我的母语,因此对于任何不当使用英语,我深表歉意。
我正在学习多线程程序,因此(在我的带有 Windows8 HyperV 的笔记本电脑上)我用一个核心处理器模拟了 Ubuntu12.04.4(在我的笔记本电脑上我有两个,几乎是四个)。 (处理器:Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz || RAM:6,00 GB || 系统:Windows 8 64 位)
在论坛和教程中搜索了几个小时后,我开始测试一些代码,但发现线程没有按正确的顺序执行。
代码:http://pastebin.com/AX2wTxZ2
问题 - 这个问题是否与单核或仿真有关,或者我做错了什么?
你没有做错任何事。你看到这样的结果的原因是……嗯,因为事情就是这样。由于两个线程并行运行,因此存在竞争条件。您对此无能为力,因为您无法控制线程的顺序(这取决于操作系统)。
尝试运行代码几次,您应该时不时地看到相反的结果。