Redis为什么设计成单线程-第1篇.docxVIP

  • 0
  • 0
  • 约1.32千字
  • 约 7页
  • 2022-03-18 发布于浙江
  • 举报
? ? Redis为什么设计成单线程 ? ? 2019独角兽企业重金招聘Python工程师标准 今天下午,烟哥吃饱了撑着没事干,上班时间到处工(zhuang)作(bi)!只见同事小刘的桌上摆了一本Redis相关的书籍,内心嘿嘿一笑:“终于,又有机会勾搭小刘了! 嗯,不要着急,跟着我思路来想!烟哥道。 假设,此刻有任务A和任务B,现在有如下两种执行方式 方式一 : 两个线程,一个线程执行A,另一个线程执行B 方式二 : 一个线程,先执行A,执行完以后继续执行B 请问,哪种方式执行更快? 只见烟哥眉头微微一皱,说道:我夜观天象,掐指一算,小刘你大学在上《计算机组成原理》这门课的时候,一定逃课了! 应该是方式二更快,因为方式一中,CPU在切换线程的时候,有一个上下文切换时间,而这个上下文切换时间是非常耗时的!打个比方,一个CPU主频是 2.6GHz,这意味着每秒可以执行:2.6*10^9 个指令,那么每个指令的时间大概是0.38ns!而一次上下文切换,将近需要耗时2000ns!而这个时间内,CPU什么都干不了,只是做了保存上下文都动作! OK,就是在I/O操作都时候,例如磁盘I/O,网络I/O等!为什么一般是在I/O操作都时候,要用多线程呢(面试高频题,必背)?因为I/O操作一般可以分为两个阶段:即等待I/O准备就绪和真正操作I/O资源! 以磁盘操作为例,磁盘的结构如下 在磁盘

文档评论(0)

1亿VIP精品文档

相关文档