class Program
{
public static void ThreadMainMethod()
{
for(int i=0;i<10;i++)
{
Console.WriteLine("Thread Proc{0}",i);
Thread.Sleep(0);
}
}
static void Main(string[] args)
{
Thread t = new Thread(new ThreadStart(ThreadMainMethod));
t.Start();
for(int i=0;i<4;i++)
{
Console.WriteLine("From Main Thread");
Thread.Sleep(0);
}
t.Join();
}
1
A
回答
2
您的代码没有定义应该运行的命令。您有四个计数线程,每个线程完全独立运行。 Windows将按照调度程序确定的顺序运行线程 - 这受到系统中每个其他进程的影响。
如果您不同步您的线程,则无法保证其运行顺序。
+0
你能告诉我如何同步这个程序@ shf301 –
+0
这取决于你想如何同步程序。您需要先定义订单。但多线程同步是一个大而复杂的领域。以下是您可以在.Net中使用的不同类型的列表:https://msdn.microsoft.com/en-us/library/9xyf641a(v=vs.110).aspx – shf301
相关问题
- 1. 为什么console.log和document.write为相同的代码提供不同的输出?
- 2. 为什么以下两个代码提供不同的结果?
- 3. 为什么下面的代码提供 '未定义' 内输出
- 4. 为什么下面这段代码会提供不同的结果?
- 5. 为什么我的代码为同一个词提供不同的数字?
- 6. 同Golang代码不同的输出,为什么?
- 7. 为什么下面的Java代码每次都有不同的输出?
- 8. 为什么下面的两个代码会生成不同的输出?
- 9. 为什么下面的代码给了我不同的预期输出?
- 10. 为什么onclick监听器会提供不同的输出?
- 11. 为什么此C++代码在不同的编译器上提供不同的输出?
- 12. 为什么执行时间与以下SQL Server代码不同?
- 13. 为什么操作员为不可变对象提供不同的输出?
- 14. 为什么输出不同?
- 15. 为什么输出不同?
- 16. 神经网络为同一输入提供不同的输出
- 17. 为什么相同的代码行为不同
- 18. C++代码为每个输入提供相同的输出
- 19. 为什么下面的代码不能按预期执行?
- 20. 为什么输出下面的代码1而不是0?
- 21. 为什么下面的flex代码不显示输出?
- 22. 为什么下面的代码不会产生任何输出?
- 23. 为什么它会为每个值提供相同的输出?
- 24. 为什么输出与我预期的代码不同?
- 25. 为什么我为下面给出的程序获得不同的输出?
- 26. Android - 为不同的设备执行不同的代码
- 27. 为什么相同的MATLAB代码运行不同的算法?
- 28. 为什么相同的代码在不同的页面显示不同?
- 29. 比较不同输入下相同代码的执行路径
- 30. 为什么下面的代码的输出为零?
因为除非同步,并发性本质上是非确定性的。 – Douglas
“Knock!Knock!Race condition,Who's there?” – Andrei15193