執行緒同步和非同步區別 非同步機制

2021-06-16 22:46:48 字數 769 閱讀 4049

1 區別同步和非同步
乙個程序啟動的多個不相干執行緒,它們相互之間關係為非同步。
舉個簡單的例子 就是遊戲,遊戲會有影象和背景** 

這裡的影象和聲音就分別是不同的執行緒 影象一般是主線程 背景**是守護執行緒(守護執行緒就是主線程結束的時候守護執行緒也結束) 像這樣的組合就是非同步執行緒 兩個執行緒之間沒什麼關係各幹各的

.至於同步的話指的是多執行緒同時操作乙個資料 這個時候需要對資料新增保護 這個保護就是執行緒的同步

2 非同步機制
臨界區、互斥區、事件、訊號量四種方式

臨界區(critical section)、互斥量(mutex)、訊號量(semaphore)、事件(event)的區別

1、臨界區:通過對多執行緒的序列化來訪問公共資源或一段**,速度快,適合控制資料訪問。在任意時刻只允許乙個執行緒對共享資源進行訪問,如果有多個執行緒試圖訪問公共資源,那麼在有乙個執行緒進入後,其他試圖訪問公共資源的執行緒將被掛起,並一直等到進入臨界區的執行緒離開,臨界區在被釋放後,其他執行緒才可以搶占。

2、互斥量:採用互斥物件機制。 只有擁有互斥物件的執行緒才有訪問公共資源的許可權,因為互斥物件只有乙個,所以能保證公共資源不會同時被多個執行緒訪問。互斥不僅能實現同一應用程式的公共資源安全共享,還能實現不同應用程式的公共資源安全共享

3、訊號量:它允許多個執行緒在同一時刻訪問同一資源,但是需要限制在同一時刻訪問此資源的最大執行緒數目

4、事 件: 通過通知操作的方式來保持執行緒的同步,還可以方便實現對多個執行緒的優先順序比較的操作

執行緒同步和非同步

執行緒同步和執行緒非同步有什麼區別?重要基礎知識 打個比方,如果你在等乙個人,同步的時候,你會一直等到她來了之後才做其他事情,這個過程除了等待你啥都不會做,非同步的時候,你一邊在等,可能一邊玩遊戲或者是看報紙什麼的,一直到她到來,你的等待狀態才會結束 在實現上,同步的過程會阻塞程序的所有其他操作,將...

執行緒同步和非同步

執行緒同步 是多個執行緒同時訪問同一資源,等待資源訪問結束,浪費時間,效率低 執行緒非同步 訪問資源時在空閒等待時同時訪問其他資源,實現多執行緒機制 非同步處理就是,你現在問我問題,我可以不回答你,等我用時間了再處理你這個問題.同步不就反之了,同步資訊被立即處理 直到資訊處理完成才返回訊息控制代碼 ...

同步和非同步,區別

同步 非同步 將使用者請求放入訊息佇列,並反饋給使用者,系統遷移程式已經啟動,你可以關閉瀏覽器了。然後程式再慢慢地去寫入資料庫去。這就是非同步。但是使用者沒有卡死的感覺,會告訴你,你的請求系統已經響應了。你可以關閉介面了。同步,是所有的操作都做完,才返回給使用者結果。即寫完資料庫之後,在相應使用者,...