英语不是我的母语,所以我为任何不恰当的用法道歉。
我正在学习多线程程序,所以(在我的笔记本电脑上使用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
输出:http://i.imgur.com/h8axGHs.png
问题 - 这个问题可能与单核或仿真有关,或者我做错了什么?
答案 0 :(得分:1)
你没有做错任何事。你看到这样结果的原因是因为......好吧,因为那是怎么回事。由于两个线程并行运行,因此存在竞争条件。您无法做到这一点,因为您无法控制线程的顺序(它取决于操作系统)。
尝试几次运行代码,您应该不时看到相反的结果。