本文目錄一覽:
- 1、如何選擇PHP環境的Thread Safe 和 Non Thread Safe 版本
- 2、php的thread是個什麼情況
- 3、windows 下選擇php版本 是選Non Thread Safe還是Thread Safe
如何選擇PHP環境的Thread Safe 和 Non Thread Safe 版本
寫個頁面輸出phpinfo 然後ctrl+f,找到thread safe,後面是enable的,就是Thread Safe
版,disable的,就是not Thread Safe
php的thread是個什麼情況
php通過擴展pthreads也可以支持線程上的操作,在mac下可以通過brew安裝pthreads擴展。線程類要繼承Thread類,而後實現run方法。
class computer extends Thread {
public $id;
public $runing = false;
public $params = null;
public function __construct($id) {
$this-id = $id;
$this-runing = true;
}
public function run() {
while ($this-runing) {
if (is_null($this-params)) {
echo “線程({$this-id})等待任務…\n”;
} else {
echo “線程({$this-id}) 收到任務參數::{$this-params}.\n”;
$this-params = null;
}
sleep(1);
}
}
}
不建議在PHP-FPM里使用多線程,寫不好會導致工作進程頻繁崩潰.使用PHP就應該轉變思路,不要照搬Java那一套.異步處理耗時任務也不一定要使用多線程.你完全可以在PHP中用 pclose(popen(‘/path/to/task.php ‘, ‘r’)); 異步打開一個進程處理耗時的任務,PHP-FPM則返回信息給瀏覽器提示”正在處理”,task.php這個cli腳本處理完成任務後,把數據庫當前任務的狀態標記為”完成”,前端AJAX定時輪詢到這個任務為”完成”,則提示用戶即可.
windows 下選擇php版本 是選Non Thread Safe還是Thread Safe
如果是使用ISAPI的方式來運行PHP就必須用Thread Safe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。 個人感覺這個很不靠譜 我現在用的ts版本的php
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129852.html