我的問題是,比如實現進程的同步,我在創建子進程之間創建信號量,在fork之後,不是父子進程擁有獨立的數據空間嗎?
那麼父子進程的PV操作如何影響同一個信號量的呢,比如父進程先P操作,若信號量初始值為0,此時為0-1=-1,但是這個不是父進程的嗎?
子進程為什麼其中的信號量也-1了呢?
你就是納悶父子進程是獨立的,但是為什麼信號量操作卻可以共用是吧。
是這樣的,你不管在哪個進程創建了信號量,對這個信號量分配的句柄是由操作系統統一管理的。
你應該把父子進程看成兩個獨立的進程,不管是誰創建的信號量,對於一個操作系統內,都是一樣的。