- 博客(6)
- 收藏
- 关注
原创 Swoole源码学习记录(六)——Pipe管道
Swoole版本:1.7.4-stable Pipe(管道)用于进程之间的数据交互,Linux系统本身提供了pipe函数用于创建一个半双工通信管道,而在swoole中也利用eventfd和unix sock封装了两种管道,使得进程间的通信更加灵活。 Swoole提供了一个基本结构体swPipe用于操作不同类型的Pipe,其声明在swoole.h文件的315 – 326 行,声明如下: t
2014-08-26 15:23:09 2953
原创 Swoole源码学习记录(五)——锁和信号(二)
Swoole版本:1.7.4-stable 二.Mutex互斥锁 接下来是Mutex(互斥锁)。Swoole的Mutex实现是基于pthread_mutex*方法族实现的,Rango用一个swMutex结构体封装了mutex的两个属性,结构体定义如下: 创建一个互斥锁的函数声明在swoole.h文件的 536 行,声明如下: intswMutex_create(swLock *lo
2014-08-22 17:37:08 2218
原创 Swoole源码学习记录(四)——锁和信号(一)
Swoole版本:1.7.4-stable 写在开头的废话:原本计划是于第四章开始reactor模块的分析,但是发现reactor模块牵扯到太多的其他模块,没法一开始就直接分析reactor,只能将其延后。一番考察之后,我决定从swoole的Lock模块入手继续分析。这一块我的知识储备有很大的空缺,估计会比较吃力…… -----------------------------------
2014-08-21 17:45:06 2425
原创 Swoole源码学习记录(三)——三种MemoryPool(下)
接下来是RingBuffer。这相当于一个循环数组,每一次申请的一块内存在该数组中占据一个位置,这些内存块是可以不等长的,因此每个内存块需要有一个记录其长度的变量。这里贴出swRingBuffer_head结构体的代码: typedef struct _swRingBuffer_item { volatileuint32_t lock; volatileuint32_t leng
2014-08-20 14:31:07 1725
原创 Swoole源码学习记录(二)——三种MemoryPool(上)
Swoole中为了更好的进行内存管理,减少频繁分配释放内存空间造成的损耗和内存碎片,Rango设计并实现了三种不同功能的MemoryPool:FixedPool,RingBuffer和MemoryGlobal。 Rango声明了一个swMemoryPool结构体来表示一个内存池,该结构体在swoole.h头文件中501-507行声明,结构如下: typedef struct _swMemory
2014-08-18 16:19:37 2613
原创 Swoole源码学习记录(一)——进程间共享数据ShareMemory 和 MemoryPool
我接触PHP的时间不长,最开始只认为PHP是用来做网站开发,是一个比JSP要简单的语言。后来,因为工作需要,一位学长建议我使用Ngnix + PHP 搭建应用服务器,并建议使用现有的框架。一番搜索之下,我意外发现了Swoole http://www.swoole.com/ 接下来的半年里,我一直使用Swoole扩展作为我的服务器核心。Swoole稳定而高效的性能以及优秀的架构设计使我的开发
2014-08-15 10:55:11 7822
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人