Skip to content

Commit

Permalink
Update 12.1.md
Browse files Browse the repository at this point in the history
  • Loading branch information
wuleying committed Aug 26, 2014
1 parent 5dc4a8b commit 733ae91
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion 12.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ zend_module_entry sample4_module_entry = {
这里要注意个特性, 某些PHP的SAPI中, 比如Apache Prefork, PHP是作为一个动态库被加载到Apache中的, 而从Apache 1.3以后(如果我没记错的话), Apache做了一个优化, 优化的结果就是首先执行各个动态模块的模块初始化工作, 然后才做fork, 派生Worker子进程, 所以反应到这里, 有的时候会出现MINIT只执行一次, 而MSHUTDOWN会执行多次的现象.
理论上来说,你可以在MSHUTDOWN中跳过一些资源的清理工作,然而在APACHE 1.3上的时候,你会发现一个有趣的事情,apache会载入mod_php,
并且会执行所以的MINIT方法,然后立刻卸载mod_php来触发MSHUTDOWN,接着再次装入,在没有执行MSHUTDOWN的时候,最初使用MINIT加载的
并且会执行所有的MINIT方法,然后立刻卸载mod_php来触发MSHUTDOWN,接着再次装入,在没有执行MSHUTDOWN的时候,最初使用MINIT加载的
资源将被泄露和浪费。
在多线程的SAPIS中,有时需要为每个线程分配自己独立的资源或跟踪每个请求的计数器。对于这些特殊情况,在每一个线程钩子中,允许额外的启动和关闭
Expand Down

0 comments on commit 733ae91

Please sign in to comment.