php多程序間通訊的問題,程序池如何儲存?

時間 2021-06-12 13:24:10

1樓:codinghuang

看你的想法,是打算用純PHP寫乙個類似Swoole的非同步伺服器。

那我直接說Swoole的實現實現思路了。

第乙個問題,Masrer程序如何和Worker程序通訊。

這個不是把Worker程序存起來,然後和Worker程序通訊。Master程序和Worker程序通訊是使用udg。Swoole的Master程序在建立Worker程序之前,先建立了一些管道,然後Worker程序被建立之後,自然就繼承了這些管道,所以Master程序可以和Worker程序通訊,所以你只需要選擇好管道,那麼就可以和Worker程序通訊了。

第二個問題,Manager程序如何知道要重新拉起乙個Worker程序。

這個也不是通過把Worker程序存起來實現的。而是Manager程序在建立完Worker程序之後,呼叫waitpid來判斷Worker程序的狀態,再結合Swoole註冊的訊號處理函式,來重新拉起乙個Worker程序。這個過程是在manager loop這個函式裡面完成的。

作業系統多程序多執行緒的相關問題?

彩鈴 不是真正大神,隨便水一發.1.現代的OS基本以執行緒為排程單位,簡單來說也就是執行緒開越多,CPU占用越大.如果以程序為排程單位的OS,也可以實現執行緒,使用者級執行緒,線段排程等由使用者 庫檔案 編寫.這樣的話多少個執行緒CPU占用一樣.2.會.執行緒切換和程序切換,在操作還是有較大區別的....

程序間通訊最快速高效的辦法是共享記憶體嗎?

泥潭裡的金魚 我個人建議用socket,如果極端需要效能的,你也不會考慮用到多程序處理。所以我個人認為用socket犧牲一點點忽略不計的效能,帶來的架構上的靈活,可伸縮性是事半功倍的方案。 yoodaa 程序間通訊還有很多方式,比如管道,訊息佇列,套接字。相對來說共享記憶體速度比較快,其次是套接字,...

程序間通訊中有名管道的FIFO檔案和一般檔案有什麼區別

the gc 說說我的理解 這個得先說匿名管道的缺點,匿名管道無法讓兩個沒有關係的程序通訊。原因在於他是基於記憶體的,其他程序沒有辦法找到這塊記憶體,也就沒有辦法通訊了。那麼命名管道的意義就在於,他有了名字,有了名字,每個程序就能找到他,也就可以完成通訊了。具體的實現來說,命名管道的檔案不是用來承載...