导航:首页 > 编程语言 > php线程安全linux

php线程安全linux

发布时间:2023-08-27 21:59:10

php线程安全与非线程安全的区别:如何选择用哪一个

首先,linux下的PHP,没有线程安全版和非线程安全版之分。从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,直至5.2.1版本开始有Thread Safe(TS,线程安全)和None Thread Safe(NTS,非线程安全)之分。

因为,Linux/Unix系统采用的是多进程的工作方式,而Windows系统采用多线程的工作方式。即:Linux系统的任务调度基本单位是进程,Windows系统的任务调度基本单位是线程(本观点来自自学与总结,不能保证百分之百正确)。

所以,在Windows系统的IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程,且CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

于是,一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以 Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用,而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(TS,线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

名词解析:

⑵ 如何判断PHP 是线程安全还是非线程安全的

判断PHP 是线程安全还是非线程安全:
1.通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

2.命令行:php -i|grep -i thread
结果:Thread Safety => disabled 【disabled表示非线程安全】
如果没有grep命令(windows),那就一个个找吧。

⑶ linux php怎么添加多线程

开始用php写后台服务一段时间了.也是在这样的驱动下,不断的学习php语法,体验这一原来一直以为神秘且敬而远之的神奇语言的魅力.最初看php多线程的资料是为了提高程序的处理能力,充分发挥linux多任务的优势.不曾想多线程没用成反到是带来了一系列的意外收获.让之后的许多问题迎刃而解,不敢独享特一一道来.
本文所讲的东西是源自php的pcntl_fork函数.因为这个函数依赖操作系统fork的实现,所以本文所讲的东西只适用于linux/unix.ok,那么先看看这个函数的用法吧.php手册上是这么说的:

<?php
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
// we are the parent
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the chil

阅读全文

与php线程安全linux相关的资料

热点内容
空调压缩机排空气视频 浏览:281
centos72nginxphp 浏览:184
游戏平台用什么服务器好 浏览:753
保密柜里的图片是加密文件吗 浏览:909
php判断最后一个字符 浏览:635
pdf脑区 浏览:635
at命令已弃用 浏览:490
买点卖出指标源码 浏览:612
36位单片机 浏览:428
英雄联盟山东服务器地址 浏览:212
sd服务器什么意思 浏览:617
thinkphp去indexphp 浏览:62
电脑显示连接未加密 浏览:193
zao服务器怎么修改 浏览:244
php使用jsapi调起支付 浏览:891
vivo云服务器网 浏览:722
cmd远程连接命令行 浏览:961
黑马python讲义 浏览:133
php高并发测试 浏览:88
第二届程序员节开幕式 浏览:84