现在的位置: 首页 -> PHP学习 -> PHP线程安全(TSRM)概念

PHP线程安全(TSRM)概念

2018-05-09 00:45评论数 0 ⁄ 被浏览 12190 views+

在单线程环境中,我们经常使用全局变量实现多个函数间数据共享,声明函数之外的变量为全局变量,全局变量为各线程共享,不同的线程引用同一地址空间,如果一个线程修改了全局变量就会影响到所有的线程。


因此:线程安全(TSRM)就是指多线程环境下如何安全的获取公共的资源。


php的SAPI多数是单线程环境的,比如Cli、Fpm、Cgi,每个进程只启动一个主线程,这种模式下是不存在线程安全问题的。但是也是有多线程的环境,比如Apache或者用户自己嵌入的php实现的环境,这种情况下就需要考虑线程安全的问题了。因为php中使用了很多全局变量,经常使用的EG、CG等宏就是用来获取公共资源的。


在多线程的环境下使用全局变量,将会引起线程之间的冲突,因此,php实现了一个线程安全资源管理器(Thread Safe Resource Manager 简称TSRM),用于解决多线程环境下公共资源冲突的问题,实现线程之间安全的操作公共资源。

摘自:PHP7内核剖析

 

文章出自:https://www.daixiaorui.com/read/275.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

目前有 0 条评论  @我要评论

    您的每一个评论都是对我的一份支持

     博客二维码

    昵称 *

    邮箱 *