另一個Thread切換執行的方式:Thread.Yield()
- Yield():
- 呼叫時會確認此CPU上是否有其他等待被呼叫的執行緒,若是,切換到其他執行去執行,若否,則會讓當前執行緒繼續執行;切換到何執行緒由作業系統自動選擇
- 高CPU利用率
- 關鍵:不管有沒有讓成功,CPU還是會執行你行程上的任一執行緒
- Sleep(Time):
- 將當前執行緒暫停一段指定時間,指定時間內當前執行緒絕對不會被執行,而空出來的CPU資源則交由作業系統去運用;在指定時間到達後,此執行緒重新進入分配佇列內等待執行
- Thread.Sleep(0)有短暫讓出的效果,會檢查是否有等待執行的執行緒,若否,則本執行緒不會被暫停會繼續跑下去
- 較低CPU利用率
- 關鍵:在Sleep期間,此執行緒絕對不會被執行
沒有留言:
張貼留言