多執行緒方法和同步方法

2021-05-24 12:31:15 字數 512 閱讀 1794

1. 多執行緒有幾種實現方法?

答:兩種方法,分別是繼承thread類和實現runnable藉口。

2.同步有幾種實現方法?

答:兩種。分別是synchronized, wait 與notify.

3. stop()和suspend()方法為何不推薦使用?

答:反對使用stop()方法,因為它不安全。它會解除由執行緒獲取的所有鎖定,而且如果物件處於一種不連貫狀態,那麼其他執行緒能在那種狀態下檢查和修改它們。結果很難檢查出真正的問題所在。suspend()方法容易造成死鎖。呼叫suspend()的時候,目標執行緒會停下來,但卻仍然有在這之前獲得的鎖定。此時,其他任何執行緒都不能訪問鎖定的資源,除非被」掛起「的執行緒恢復執行。對任何執行緒來說,如果它們想恢復目標執行緒,同時又試圖使用任何乙個鎖定的資源,就會造成死鎖。所以不應該使用suspend(),而應在自己的thread()類中置入乙個標誌,指出執行緒應該活動還是掛起。若標誌指出執行緒應該掛起,使用wait()命其進入等待狀態。若標誌指出執行緒應當恢復,則用乙個notify()重新啟動執行緒。

多執行緒同步方法

今天學習了。用c語言寫的多執行緒程式 同步原來有如此多方法 1.臨界區 臨界區是保證在某乙個時間只有乙個執行緒可以訪問資料的方法。使用它的過程中,需要給各個執行緒提供乙個共享的臨界區物件,無論哪個執行緒占有臨界區物件,都可以訪問受到保護的資料,這時候其它的執行緒需要等待,直到該執行緒釋放臨界區物件為...

多執行緒同步方法

臨界區 critical section 互斥量 mutex 訊號量 semaphore 事件 event 的區別 1 臨界區 通過對多執行緒的序列化來訪問公共資源或一段 速度快,適合控制資料訪問。在任意時刻只允許乙個執行緒對共享資源進行訪問,如果有多個執行緒試圖訪問公共資源,那麼在有乙個執行緒進入...

MFC多執行緒同步方法

mfc提供了多種同步物件,下面我們只介紹最常用的四種 a 使用 ccriticalsection 類 當多個執行緒訪問乙個獨占性共享資源時,可以使用 臨界區 物件。任一時刻只有乙個執行緒可以擁有臨界區物件,擁有臨界區的執行緒可以訪問被保護起來的資源或 段,其他希望進入臨界區的執行緒將被掛起等待,直到...