C# suspend sleep join 區別
sleep方法是個靜態方法,由thread類來呼叫。它只能暫停當前執行緒,不能暫停其他執行緒。它接受的引數指名這個執行緒需要休眠多少時間。
suspend方法是普通方法,由物件呼叫,他不但能夠終止當前執行緒,還能夠終止其他執行緒。與 Thread.Sleep 不同,Thread.Suspend 不會使執行緒立即停止執行。公共語言執行庫必須一直等待,直到執行緒到達安全點之後它才可以將該執行緒掛起。如果執行緒尚未啟動或已經停止,則它將不能掛起。執行緒 的安全點是執行緒執行過程中可執行垃圾回收的一個點。但是它具有高度侵犯性並會導致嚴重的應用程式問題,如死鎖(例如,如果掛起的執行緒佔有另一個執行緒需要的 資源,就會發生這種情況)。某些應用程式確實需要控制執行緒的優先順序以提高效能。為了做到這一點,應該使用 Thread.Priority 而不是 Thread.Suspend。
join方法是非靜態方法,他使得在系統呼叫此方法時只有這個執行緒執行完後,才能執行其他執行緒,包括主執行緒的終止!或者給它制定時間,即最多過了這麼多時間後,如果還是沒有執行完,下面的執行緒可以繼續執行而不必再理會當前執行緒是否執行完。
所以,最好不要使用suspend方法來掛起執行緒,綜合使用sleep join priority 都是很好的解決辦法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-757088/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sleep與 wait區別AI
- sleep()和wait()區別AI
- sql:left join和join區別SQL
- 併發程式設計——執行緒中sleep(),yield(),join(),wait(),notify(),notifyAll()區別程式設計執行緒AI
- join、inner join、left join、right join、outer join的區別
- java yield()和sleep()的區別Java
- 一張圖搞清楚wait、sleep、join、yield四者區別,面試官直接被征服!AI面試
- 請教sleep()與yield()的區別
- sql之left join、right join、inner join的區別SQL
- Inner Join, Left Outer Join和Association的區別
- oracle知識整理(1) union和union all的區別,left join和right join的區別(各種join的區別)Oracle
- Java_Thread類的sleep()與SystemClock類的sleep()的區別Javathread
- 【Java】sleep和wait區別總結JavaAI
- sql的left join 、right join 、inner join之間的區別SQL
- SQL join中on與where區別SQL
- left join,right join,inner join的條件on和where的區別
- ZT:簡單介紹join,outer-join,semi-join,anti-join的區別
- Linux作業系統 sleep(0)、sleep(1)和sleep(-1)的區別,他們各有什麼作用Linux作業系統
- linux的sleep()和usleep()的使用和區別Linux
- Task.Delay 和 Thread.Sleep 的區別thread
- 執行緒篇2:[- sleep、wait、notify、join、yield -]執行緒AI
- 執行緒狀態&&Wait和sleep的區別?執行緒AI
- SQL JOIN 中 on 與 where 有何區別SQL
- java執行緒中yield(),sleep(),wait()區別詳解Java執行緒AI
- java之yield(),sleep(),wait()區別詳解-備忘筆記JavaAI筆記
- left join 後用 on 還是 where,區別大了!
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- Mysql-left join on後接and,和where的區別MySql
- Thread執行緒控制之sleep、join、setDaemon方法的用處thread執行緒
- .net與C#的區別C#
- c#與java的區別C#Java
- SAP ABAP CDS view 裡 INNER JOIN 和 Association 的區別View
- Java執行緒中yield與join方法的區別Java執行緒
- java多執行緒基礎篇(wait、notify、join、sleep、yeild方法)Java執行緒AI
- windows執行緒yield以及Sleep(0)和SwitchToThread之間的區別Windows執行緒thread
- c#中值型別和引用型別的區別C#型別
- c# as_is的使用及區別C#
- SQL語句中 left join 後用 on 還是 where,區別大SQL