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