模拟器上单核多线程[关闭]

问题描述 投票:0回答:1

英语不是我的母语,因此对于任何不当使用英语,我深表歉意。

我正在学习多线程程序,因此(在我的带有 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

输出:https://i.stack.imgur.com/26OeQ.png

问题 - 这个问题是否与单核或仿真有关,或者我做错了什么?

multithreading ubuntu emulation cpu-cores
1个回答
1
投票

你没有做错任何事。你看到这样的结果的原因是……嗯,因为事情就是这样。由于两个线程并行运行,因此存在竞争条件。您对此无能为力,因为您无法控制线程的顺序(这取决于操作系统)。

尝试运行代码几次,您应该时不时地看到相反的结果。

© www.soinside.com 2019 - 2024. All rights reserved.