PHP pthreads 多執行緒操作

2021-07-05 19:51:11 字數 1956 閱讀 6871

1、php採用安全執行緒模式進行編譯--enable-maintainer-zts 必須加上

configure_options=" '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--with-mcrypt' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-opcache' '--enable-maintainer-zts'"

編譯安裝成功之後,增加 extension=pthreads.so

重啟nginx和php-fpm,提示

starting php-fpm failed loading /usr/local/zend/zendguardloader.so: /usr/local/zend/zendguardloader.so: undefined symbol: executor_globals

done

這是由於php在安全執行緒模式下執行不支援zendguardloader的原因,可以直接無視。

3、下面感受一下多執行緒的效率

echo "多執行緒:".($e-$t)."\n";

$t = microtime(true);

foreach ($urls_array as $key => $value)

$e = microtime(true);

echo "for迴圈:".($e-$t)."\n";

?>

多執行緒:0.9154269695282 for迴圈:5.3936388492584

PHP pthreads 多執行緒

中國廣東省 深圳市龍華新區民治街道溪山美地 518131 86 13113668890 86 755 29812080 id book.xml 642 2013 07 19 01 28 13z netkiller 文件出處 date 2013 07 19 09 28 13 0800 fri,19 j...

多執行緒 多執行緒原理

我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...

多執行緒(一) tomcat 多執行緒

web server允許的最大執行緒連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。1.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案 maxthreads 150 表示最多同時處理150個連線,tomcat使用執行緒來處理...