您现在的位置:首页 --> 查看专题: 线程模型
Memcached是一种应用较广泛的分布式内存对象缓存系统,应用之余总想了解它的实现机理,这也就是开源的好处,以至于每接触一款优秀的开源软件都有去阅读它源代码的冲动,Memcached-1.4.7的代码量还是可以接受的,只有10K行左右,我比较关心的两个方面还是它的进程(线程)管理机制和内存管理机制,这里先简单写一下我对Memcached进程管理方面的理解。 Memcached使用libevent实现事件循环,libevent在Linux环境下默认采用epoll作为IO多路复用方法,这个不重要,接下来要讨论的是Memcached的进程管理模型。
Java线程模型的优点在于能够清晰的model应用逻辑流,通过对应OS里物理线程,可以利用多个处理器,或者通过切换让CPU利用率不同的线程共享一个处理器。 但是这种把应用的逻辑线程直接搬到OS的物理线程上运行的方式(*)也存在弊端: Heavy weight,每个OS线程都需要内存和自己的堆栈等资源 Context switching,及其引起的低效率(cache污染,线程饥饿,优先级逆转..) Synchronization & lock, 需用同步访问share memory和资源,而如...
[ 共2篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [744] WEB系统需要关注的一些点
- [21] 移动音乐产品梳理
- [17] 哪本书是对程序员最有影响、每个程序员都该阅读
- [17] 豆瓣是啥?
- [16] Chrome开发者工具的小技巧
- [14] 内存的惰性初始化
- [12] 这些反人类设计,你肯定也碰到过
- [12] sns视觉设计分享
- [11] Spark性能优化——和shuffle搏斗
- [11] 一张图帮你看懂 iPhone 的屏幕分辨率
赞助商广告