在单线程环境中,我们经常使用全局变量实现多个函数间数据共享,声明函数之外的变量为全局变量,全局变量为各线程共享,不同的线程引用同一地址空间,如果一个线程修改了全局变量就会影响到所有的线程。
因此:线程安全(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 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。
蛋仔派对无限蛋币http://www.wzryzs.com/
666
666
很好的方法值得推荐
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/