nginx 多進程模式 php如何多線程?

來源:互聯網
上載者:User
關鍵字 nginx php 多線程
眾所周知 nginx 預設是多進程模式運行,實際項目中一般也採取多進程模式。
所謂php 多線程 是怎麼回事,是說php 建立多個線程 對應到nginx裡一個進程裡面的 多個串連嗎?
請各位前輩指點

備忘:我說的多線程之php通過擴充的形式實現多線程(pthreads)

回複內容:

眾所周知 nginx 預設是多進程模式運行,實際項目中一般也採取多進程模式。
所謂php 多線程 是怎麼回事,是說php 建立多個線程 對應到nginx裡一個進程裡面的 多個串連嗎?
請各位前輩指點

備忘:我說的多線程之php通過擴充的形式實現多線程(pthreads)

通常情況下php不會以多線程模式運行,而通常與nginx共用的php-fpm也是以多進程方式啟動並執行。php的多線程模式主要是用在windows下的iis伺服器上,因為在windows下頻繁申請新進程開銷比較大,所以php引入了多線程模式。而同時,多線程模式下運行php時一定要使用安全執行緒版本的php。

更新:
更簡單的說吧,你說的pthreads的多線程只是能在PHP處理中起輔助作用,在以Web伺服器形式運行時極少用到,因為處理請求不太需要多線程支援,而且在這種情況下使用pthreads特別容易造成不可預期的問題(因為這種搭配本身破壞了PHP作為Web動態處理常式的體繫結構)。另外線程置於進程是子與父的關係,而ngnix與php-fpm的體繫結構是,ngnix將請求交給php-fpm處理,php-fpm會建立多個進程並分配其中一個處理請求,其中不涉及線程問題,而pthreads只是在處理期間能夠建立一些線程,php-fpm不會把請求分配給線程,ngnix也不是和pthreads的線程進行串連。

nginx將請求分發給PHP解析器,PHP解析器有幾種不同的運行模式,PHP、PHP-CGI、PHP-FPM,在PHP-FPM當中有另外的一個多線程管理參考連結fastCGI與PHP-FPM的關係

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.