linux父子进程字写父读无效,linux父子进程
1)因為nginx的worker進程都是master進程fork出來的,繼承了監(jiān)聽句柄。
2)nginx實現(xiàn)了一個鎖,work進程競爭,誰獲取鎖,誰accept連接。######正解!######自己頂一下######
引用來自“火星人”的答案
1)因為nginx的worker進程都是master進程fork出來的,繼承了監(jiān)聽句柄。
2)nginx實現(xiàn)了一個鎖,work進程競爭,誰獲取鎖,誰accept連接。
不是使用select方法?
######類似 進程池######
引用來自“ZYud”的答案
引用來自“火星人”的答案
1)因為nginx的worker進程都是master進程fork出來的,繼承了監(jiān)聽句柄。
2)nginx實現(xiàn)了一個鎖,work進程競爭,誰獲取鎖,誰accept連接。
不是使用select方法?
工作進程的事件處理方式是可選的,在編譯的時候配置即可,windows下用的是select,linux下默認用的是epoll或者kqueue。
######
引用來自“火星人”的答案
1)因為nginx的worker進程都是master進程fork出來的,繼承了監(jiān)聽句柄。
2)nginx實現(xiàn)了一個鎖,work進程競爭,誰獲取鎖,誰accept連接。
可是按道理說一個端口可是有一個應(yīng)用的多個進程同時占用,但只能被一個進程所監(jiān)聽的呀!
一般情況下都是master進程負責監(jiān)聽,將任務(wù)分配給不同的子進程,即使是master進程fork出來的,也只是或得那個socket的句柄,也并未真正獲得監(jiān)聽句柄吧!
追問一下:多個進程可以監(jiān)聽同一個端口,豈不是不同的應(yīng)用可以監(jiān)聽同一個端口!
能幫我寫個簡單的c例子么?
######
引用來自“痞子湯”的答案
類似 進程池
進程池貌似跟這個是兩碼事兒吧
######
引用來自“火星人”的答案
1)因為nginx的worker進程都是master進程fork出來的,繼承了監(jiān)聽句柄。
2)nginx實現(xiàn)了一個鎖,work進程競爭,誰獲取鎖,誰accept連接。
對于第二點,如果他是這么實現(xiàn)的,豈不是性能是master進程負責監(jiān)聽分配任務(wù)的方式底,畢竟master的事兒沒少做,還有資源競爭的代價在里面
######
多個進程可以監(jiān)聽同一個端口,豈不是不同的應(yīng)用可以監(jiān)聽同一個端口!
兩個完全獨立的進程 , 和 fork 出來的父子進程是有區(qū)別的吧。 ?再說我覺得和進程池有 點類似,圖已經(jīng)表明
在accept 之前你 fork 一堆子進程,在子進程內(nèi)進行 accept 應(yīng)該莫有問題吧
######個人理解
總結(jié)
以上是生活随笔為你收集整理的linux父子进程字写父读无效,linux父子进程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux c 文件映射,linuxc试
- 下一篇: linux 其他常用命令