穷则独善其身,达则兼济天下

工匠之心,技术狂热追求者,开源社区爱好者,一个记录成长的站点。

分类 源码阅读 下的文章

November 22, 2018

源码阅读:YAF框架系列文章(2) - (yaf.c)

这个文件是yaf框架的整体组成框架文件,因为yaf的设计思路是模块化的,因此在这个文件中进行了总体整合。整合的思路分为以下几个部分。INI配置文件的解析注册系统使用的常量注册各个模块对扩展模块的各个生命期做拦截监控注册扩展模块一、INI配置文件解析功能在php_yaf.h文件中对于全局变量进行了定义工作,随后在yaf.c中进行了声明工作,声明操作 ZEND_DECLARE_MODULE_GL...

源码阅读:YAF框架系列文章(1) - (php_yaf.h)

这个文件的核心使命是构建yaf基础定义,这部分定义主要包括对于内核函数的宏定义对于框架变量类型的宏定义对于框架所使用的全局变量进行定义一、对于内核函数进行宏定义#define YAF_STARTUP_FUNCTION(module) ZEND_MINIT_FUNCTION(yaf_##module) #define YAF_RINIT_FUNCTION(module) ...

PHP扩展开发2.2:线程安全

背景介绍线程安全是编程中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。一般来说,线程安全的函数应该为每个调用它的线程分配专门的空间,来储存需要单独保存的状态(如果需要的话),不依赖于“线程惯性”,把多个线程共享的变量正确对待(如,通知编译器该变量为“易失(volatile)”型,阻止其进行一些不恰当的优化),而且,线程安全的函数一...

PHP扩展开发2.1:PHP生命周期

1. PHP SAPI无论是Web模式、FastCgi模式、CLI模式,PHP的工作原理都是一样的,都是作为一种SAPI在运行(Server Application Programming Interface : the API sed by PHP to interface with Web Servers)。当我们在终端敲入php这个命令时候,它使用的是"”command lines a...
June 8, 2018

源码阅读:C语言epoll模型

背景epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO...
June 6, 2018

源码阅读:Golang HTML To MarkDown

背景介绍这是一个Golang源码,主要任务在于把HTML代码转换为MarkDown文本,先把两个源码文件发布出来,供大家研读。1.Core源码package html2md import "regexp" const ( Foreign = iota Void ) type ReplaceFunc func(string, []string) str...