Chinaunix

标题: 谁看过memcached的源码请指点下 [打印本页]

作者: liexusong    时间: 2011-03-03 17:10
标题: 谁看过memcached的源码请指点下
看memcached源码的时候发现memcached没有加锁的, 那么多线程模式下怎么办啊??
作者: 日月并行II    时间: 2011-03-03 18:58
提问不清楚
作者: jerryz920    时间: 2011-03-03 20:55
什么代码?

加不加锁看应用场景额,而且存在一些复杂的lock-free算法,这样只用原子操作就可以实现线程安全~
作者: egmkang    时间: 2011-03-03 21:15
本帖最后由 egmkang 于 2011-03-03 21:20 编辑

libevent不能多线程访问的
memcached里面也是一样的,不管加不加锁都不能多线程操作同一个东西
不过可以操作不同的(对象)

PS:
我说不上来memcached怎么弄的,但是我大概知道原理(猜的).
作者: bittertea    时间: 2011-03-03 22:04
头文件中有开启多线程编译开关后的函数重定义
作者: aobai    时间: 2011-03-03 22:07
libevent  这个东西发现资料好少。。。
作者: dbx_c    时间: 2011-03-04 00:27
从memory slab pool分配内存块时加锁了,就是用的pthread_mutex,通信的时候没加锁,在主线程中acccept,accept成功后调用dispatch函数分配套接字到工作线程;每个套接字只属于一个线程,不用加锁
作者: nizvoo    时间: 2011-03-04 07:36
尽量减少交叉数据啊。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2