技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 查看专题: 线程模型
    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 ]
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1