主執行路徑(主線程)將分爲兩個執行路徑(不同主機上的兩個新線程),但主線程不再需要。我可以將一個任務分配給主線程並保存一個線程(一個任務通過主線程,另一個通過一個新線程),但我想知道將主線程置於無限的睡眠中Thread.Sleep(Timeout.Infinite)
是一個好方法或不是。我的類將被實例化很多次,如果無限睡眠中的線程從操作系統獲取資源對我來說是個壞消息。Thread.Sleep(Timeout.Infinite)性能問題
回答
您創建的每個線程都佔用堆棧空間。在Windows上,默認情況下爲1MB。還有其他內部管理數據結構,操作系統用它來跟蹤線程,這些線程也會佔用一些內存,但1MB堆棧肯定會成爲最大的資源消耗者。如上所述,如果我們只談論2線程和3線程,那麼差別非常小。如果它是200比300,那麼你可能有些擔心。但是如果你產生了很多線程,那麼最好使用某種線程池(比如the one built-in to the .NET framework),而不是產生單個線程。
謝謝。由於它是一個asp.net應用程序,我無法使用池。 – Xaqron 2010-10-05 05:00:28
@Xaqron:你仍然可以在ASP.NET應用程序中使用線程池,爲什麼你認爲你不能?那麼Thread.Sleep(Timeout.Infinite)如何在ASP.NET應用程序中工作呢?你在哪裏做這種「無限」的睡眠? – 2010-10-05 05:07:19
如果您將有很多線程(我的方案)使ASP.NET陷入捱餓,因爲我們都知道它使用工作線程來處理請求,所以我在某處使用ASP.NET應用程序中的線程池讀取數據。我在http處理程序的開始處使用了無限循環,並且我將在另一個問題中描述整個場景,因爲任何人都不喜歡冗長的模糊問題。 – Xaqron 2010-10-05 05:19:48
無論他們是否在睡覺,所有線程都會佔用資源。
- 1. Thread.sleep()的Java性能問題
- 2. 是Thread.Sleep(Timeout.Infinite);比while(true){}更高效?
- 3. Thread.sleep問題()
- 4. Thread.Sleep問題
- 5. System.Threading.Thread.Sleep Mono with Timeout.Infinite
- 6. Thread.sleep()和mouseMove()的問題
- 7. 性能問題
- 8. 性能問題
- 9. 性能問題
- 10. 性能問題
- 11. 性能問題
- 12. 性能問題
- 13. 性能問題
- 14. 。性能問題
- 15. 性能問題
- 16. 性能問題
- 17. 性能問題
- 18. 性能問題
- 19. Nginx性能問題
- 20. StreamInsight性能問題
- 21. MemSQL性能問題
- 22. Directory.GetFiles()性能問題
- 23. Javascript性能問題
- 24. C#性能問題
- 25. requestAnimationFrame()性能問題
- 26. SSRS性能問題
- 27. Primefaces性能問題
- 28. xsl性能問題
- 29. FragmentStatePagerAdapter性能問題
- 30. UIScrollView性能問題
使用主線程或新線程在任務上有任何區別/標準嗎? (考慮這是一個ASP.NET應用程序) – Xaqron 2010-10-05 05:01:29