您现在的位置:首页
--> CodingLabs
为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统。众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的成熟,越来越多的系统开始转型为LNMP(Linux+Nginx+MySQL+PHP with fpm),这是因为Nginx采用基于事件机制的I/O多路复用思想设计,在高并发情况下其性能远远优于默认采用prefork模式的Apache,另外,相对于Apache,Nginx更轻量,同时拥有大量优秀的扩展模块,使得在Nginx上可以实现一些美妙的功能。
在阅读PHP源码和学习PHP扩展开发的过程中,我接触到大量含有“TSRM”字眼的宏。通过查阅资料,知道这些宏与Zend的线程安全机制有关,而绝大多数资料中都建议按照既定规则使用这些宏就可以,而没有说明这些宏的具体作用。不知道怎么回事总是令人不舒服的,因此我通过阅读源码和查阅有限的资料简要了解一下相关机制,本文是我对研究内容的总结。 本文首先解释了线程安全的概念及PHP中线程安全的背景,然后详细研究了PHP的线程安全机制ZTS(Zend Thread Safety)及具体的实现TSRM,研究内容包括相关数据结构、实现细节及运行机制,最后研究了Zend对于单线程和多线程环境的选择性编译问题。 线程安全 线程安全问题,一言以蔽之就是多线程环境下如何安全存取公共资源。我们知道,每个线程只拥有一个私有栈,共享所属进程的堆。
[ 共22篇文章 ][ 第2页/共2页 ][ 1 ][ 2 ]
近3天十大热文
-
[1353] WordPress插件开发 -- 在插件使用 -
[142] 解决 nginx 反向代理网页首尾出现神秘字 -
[58] 分布式系统hash策略 -
[57] Oracle MTS模式下 进程地址与会话信 -
[56] Linux如何统计进程的CPU利用率 -
[55] find命令的一点注意事项 -
[55] 如何建立合适的索引? -
[55] DNS解析过程及DNS TTL值 -
[53] 浅谈MySQL索引背后的数据结构及算法 -
[48] 你应该知道的16个Linux服务器监控命令
赞助商广告