本文目录一览:
- 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