1,原因:进程是os资源分配的基本单位,每个进程都有独立的内存空间,进程之间除了通过进程通信手段之外,无法直接访问非自己的内存地址。而同一个进程的所有线程共享内存空间,,所以引入了线程安全的问题。
2,场景:PHP以CGI或者 FastCGI模式运行的话每个request都是独立的进程,不存在线程安全的问题。但要是以sapi例如多线程apache模块运行的话,就必须考虑线程安全的问题。
3,原理:PHP的TSAM帮你管理整个进程的内存分配,每个线程都必须通过TSAM,从内存池中申请空间,避免各线程之间的内存争夺战。
4,比较: NTS肯定比TS运行速度快。如果使用第三方扩展,最好安装TS的php,以避免服务器挂掉,安全等问题。