linux之多任务的同步与互斥
?1、操作系統:
?基本都是多任務操作系統,即同時有大量可調度實體在運行。在多任務操作系統中。
?
?
?2、同時運行的多個任務可能產生的問題
???????? 1) 都需要訪問/使用同一種資源
????????? 2) 多個任務之間有依賴關系,某個任務的運行依賴于另一個任務
? 這兩種情形是多任務編程中遇到的最基本的問題,也是多任務編程中的核心問題,同步和互斥就是用于解決這兩個問題的。
?
?
?
3、互斥
?
?
?
??? 是指散步在不同任務之間的若干程序片斷,當某個任務運行其中一個程序片段時,其它任務就不能運行它們之中的任一程序片段,只能等到該任務運行完這個程序片段后才可以運行。最基本的場景就是:一個公共資源同一時刻只能被一個進程或線程使用,多個進程或線程不能同時使用公共資源。
?
?
?
4、同步
?? 是指散步在不同任務之間的若干程序片斷,它們的運行必須嚴格按照規定的某種先后次序來運行,這種先后次序依賴于要完成的特定的任務。最基本的場景就是:兩個或兩個以上的進程或線程在運行過程中協同步調,按預定的先后次序運行。比如 A 任務的運行依賴于 B 任務產生的數據。
顯然,同步是一種更為復雜的互斥,而互斥是一種特殊的同步。也就是說互斥是兩個任務之間不可以同時運行,他們會相互排斥,必須等待一個線程運行完畢,另一個才能運行,而同步也是不能同時運行,但他是必須要安照某種次序來運行相應的線程(也是一種互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任務的運行順序,即任務是無序的,而同步的任務之間則有順序關系。
?
?
總結
以上是生活随笔為你收集整理的linux之多任务的同步与互斥的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux之解决在ubuntu上面打开w
- 下一篇: linux之mutex(互斥锁)