記錄PHP的進程和線程理解

來源:互聯網
上載者:User

標籤:遇到   很多   多線程編程   AC   執行   http   bubuko   圖片   程式   

php開發需要瞭解進程和線程,因為也會遇到多線程的開發。那什麼是進程和線程呢?一起來嘮嘮吧。

內容概要:

1、什麼是進程

2、什麼是線程

3、進程和線程的關係

4、php編程常見的進程和線程

一、什麼是進程

進程是程式執行是的一個執行個體,進程能夠分配給cpu和記憶體等資源。進程一般包括指令集和系統資源,其中指令集就是你的代碼,系統資源就是指cpu、記憶體以及I/O等。

二、什麼是線程

線程是進程的一個執行流,線程不能分配系統資源,它是進程的一部分,比進程更小的獨立啟動並執行單位。

解釋一下:進程有兩個特性:一是資源的所有權,一個是調度執行(指令集),線程是調度執行中的一部分,是指進程執行過程的路徑,也叫程式執行流。線程有時候也叫輕量級進程。

來源於《深入理解php核心》網站

三、進程和線程的關係

進程就像地主,有土地(系統資源),線程就像佃戶(線程,執行種地流程)。每個地主(進程)只要有一個幹活的佃戶(線程)。

進程-資源分派的最小單位,相對健壯,崩潰一般不影響其他進程,但是切換進程時耗費資源,效率差些。

線程-程式執行的最小單位,沒有獨立的地址空間,一個線程死掉可能整個進程就死掉,但是節省資源,切換效率高。

四、php編程常見的進程和線程

1、在web應用中,我們每次訪問php,就建立一個PHP進程,當然也會建立至少一個PHP線程。

2、PHP使用pcntl來進行多進程編程

3、PHP中使用pthreads來進行多線程編程

4、nginx的每個進程只有一個線程,每個線程可以處理多個用戶端的訪問

5、php-fpm使用多進程模型,每個進程只有一個線程,每個線程只能處理一個用戶端訪問。

6、apache可能使用多進程模型,也可能使用多執行緒模式,取決於使用哪種SAPI.

結束語

進程和線程的話題很多,比如:線程之間的切換,優先順序,共用資源,線程之間的通訊,守護進程,進程鎖,安全執行緒等等。

記錄PHP的進程和線程理解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.