在套接字編程中,您將創建一個偵聽套接字,然后為每個連接的客戶端獲得一個正常的流套接字,可用于處理該客戶端的請求。操作系統管理后臺的傳入連接隊列。默認情況下,兩個進程不能同時綁定到同一端口。我想知道是否有一種方法(在任何知名的OS上,尤其是Windows上)啟動進程的多個實例,以使它們全部綁定到套接字,從而有效地共享隊列。每個流程實例可以是單線程的;接受新的連接時它將阻塞。當客戶端連接時,一個空閑的流程實例將接受該客戶端。這將允許每個進程具有非常簡單的單線程實現,除非通過顯式共享內存,否則不共享任何內容,并且用戶將能夠通過啟動更多實例來調整處理帶寬。是否存在這樣的功能?編輯:對于那些問“為什么不使用線程?”的人 顯然,線程是一個選擇。但是在單個進程中有多個線程的情況下,所有對象都是可共享的,因此必須格外小心,以確保對象不是共享的,或者一次僅對一個線程可見,或者是絕對不變的,并且大多數流行的語言和運行時缺少用于管理這種復雜性的內置支持。通過啟動幾個相同的工作進程,您將獲得一個并發系統,其中的默認設置為不共享,從而使構建正確且可伸縮的實施變得更加容易。
是否有多個進程共享偵聽套接字的方法?
慕運維8079593
2019-11-05 14:47:18