select與epoll的區(qū)別 互斥量、臨界區(qū)、信號量和時間的作用與區(qū)別?
互斥量、臨界區(qū)、信號量和時間的作用與區(qū)別?信號量:線程通信;鎖:線程同步;互斥只能由鎖定的線程釋放,而二進制信號量的打開和關閉可以由不同的線程操作。信號量的線程通信功能。信號量機制屬于臨界區(qū)互斥的哪種
互斥量、臨界區(qū)、信號量和時間的作用與區(qū)別?
信號量:線程通信;
鎖:線程同步;
互斥只能由鎖定的線程釋放,而二進制信號量的打開和關閉可以由不同的線程操作。
信號量的線程通信功能。
信號量機制屬于臨界區(qū)互斥的哪種互斥方法?
關鍵區(qū)域互斥分為軟件實現(xiàn)方法和硬件實現(xiàn)方法。
軟件實現(xiàn)方法是設置和檢查入口區(qū)域中的一些標志,以指示關鍵區(qū)域中是否有進程。如果在關鍵區(qū)域有一個進程,它將通過循環(huán)檢查在入口區(qū)域等待。進程離開關鍵區(qū)域后,它將修改退出區(qū)域中的標志。
硬件實現(xiàn)方法分為中斷屏蔽法和硬件指令法。
中斷屏蔽意味著當進程使用處理器在關鍵區(qū)域執(zhí)行代碼時,禁止所有中斷,以防止其他程序進入關鍵區(qū)域。
硬件指令方法使用ts和swap語句。
信號量互斥由P、V原語控制。當進入關鍵區(qū)域時,通過P,V操作修改信號量值,實現(xiàn)互斥。我認為在關鍵領域實現(xiàn)互斥的兩種基本方法之間有一些細微的差別。如果你真的想把它分成基本的方法,它仍然感覺像是軟件實現(xiàn)方法。
mutex和semaphore的區(qū)別?
Mutex Mutex僅用于保護關鍵區(qū)域中的代碼(訪問共享資源),但不用于同步鎖。也就是說,在一個線程釋放互斥鎖之后,它可以立即獲得相同的鎖,而不管其他線程是否在等待互斥鎖。
信號量不僅可以保護關鍵區(qū)域,還可以用于鎖同步。也就是說,在線程釋放信號量之后,它將確保等待信號量的線程首先執(zhí)行,而不是立即獲取相同的信號量。
如果兩個線程希望通過鎖輸出1、2、1、2、1、2的序列,則應使用信號量,而互斥可能導致1、1、1、1、2、2、11。