php进程间通信 yoc_PHP 进程间通信各种通信方式间的优劣之分??
目前我所了解的進程間通信的方式有:
1. PHP 消息隊列(sysvmsg 擴展)
我的理解: 消息是一次性消耗品。一個進程向消息隊列發(fā)送消息后,這個消息只能夠被另一個進程接收,接收后,這個消息就徹底從消息隊列中被去除了,其他進程就無法在訪問了,所以,我認為消息隊列是一次性消耗品。不適用于一個進程向多個進程廣播內(nèi)容的這種情況,不是很理想....
2. 信號量 + 共享內(nèi)存
我的理解: 信號量實現(xiàn)資源的互斥,共享內(nèi)存實現(xiàn)進程間通信。但是我擔心,共享內(nèi)存受到內(nèi)存大小限制,或許不適用于某些場景。
3. 管道(有名管道,無名管道暫時不知道如何創(chuàng)建)
我的理解: 管道每次都是想管道文件末尾添加內(nèi)容,讀取的時候卻只能從頭讀取到尾部,且在讀取管道數(shù)據(jù)的時候,若是 提供了讀取長度的條件,那么在管道內(nèi)容的數(shù)據(jù)不足這個長度的時候,其會等到管道的內(nèi)容有足夠的內(nèi)容時,才能夠讀取到內(nèi)容,讀取的時候,內(nèi)容大多是被截斷的這種情況.....非常令人無語!
4. socket 通信
前一段時間了解過,都是游離在表層,連自己的理解都談不上...汗!
問題1:
以上的理解純屬個人理解,都是從實際寫代碼,看結(jié)果,得到的認知,具體正確性未知。麻煩先做一下指正分析,謝謝。
問題2:
不知道還有沒有其他的進程間通信方式??
問題3:
請精簡分析下各進程間通信方式的優(yōu)缺點、用途(很重要...方式越多,選擇性越多,選擇難度越大!)
問題4:
我之所以了解PHP-cli,Linux,shell,pcntl等多進程擴展,進程間通信方式等,其最終目的是想:實現(xiàn)類似 QQ 的通信功能。而做這個功能我個人覺得應該可以極大程度的提高對高并發(fā)的認知(因為可以用多進程來模擬高并發(fā),到時無論是cpu占用率,內(nèi)存,數(shù)據(jù)庫性能肯定都會暴露出令人感興趣的表現(xiàn)),以及如何測量一個網(wǎng)站的訪問規(guī)模(應該高并發(fā)下的網(wǎng)站表現(xiàn),就確定了其訪問規(guī)模大小),最重要的是還是對網(wǎng)絡(luò)通信會有較深入的了解吧....請結(jié)合前面我所描述的假想,勞煩分析其正確性及可執(zhí)行性,最好還是能提供較完備的實現(xiàn) 通信功能 所需的相關(guān)技術(shù),謝謝...!
總結(jié)
以上是生活随笔為你收集整理的php进程间通信 yoc_PHP 进程间通信各种通信方式间的优劣之分??的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习之路 | PTA乙级—— 10
- 下一篇: C++学习之路 | PTA乙级—— 10