--------------------------------------------------
From: "sunway" <sunh...@gmail.com>
Sent: Tuesday, July 29, 2008 2:46 PM
To: "高性能网络编程邮件列表" <dev4s...@googlegroups.com>
Subject: Re: 网络服务器中的内存管理
--
Sent from my mobile device
Linker M Lin
linke...@gmail.com
※※※※※※※※※
※※我思故我在※※
※※※※※※※※※
对于一些转发式的服务器,实现一种线程安全,又可以减少加锁次数的固定大小分配内存池的可能是存在的.
实现方案如下,接收线程接收到包后,由线程内存池分配一块内存,然后直接将指针传到转发线程发送.发送
完毕后,将内存块放回属于本线程的线程池.当任一内存池发觉预分配内存块不够时,才执行一次同步工作,将
其它线程池中的一部分固定内存块同步到本地内存池。
则加锁操作,仅仅会出现在本地线程池固定内存块不足的情况下.
所以当接收线程的内存池中内存块不够时,可直接向转发线程索要即可,一次加锁将一整片内存块同步过来.以后继续分配内存,就无需要再加锁了.