- 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资源!
以磁盘操作为例,磁盘的结构如下
在磁盘
您可能关注的文档
- Python网络程序设计教学要点与案例分享.docx
- python网络通信器设计.docx
- Python计算生态概览.docx
- Python设计模式面向对象编程.docx
- Python语言程序设计-学习笔记和练习.docx
- Python语言程序设计-学习笔记和课后练习.docx
- Python语言程序设计-文件和数据格式化.docx
- Python语言程序设计基础.docx
- Python课程设计爬虫篇.docx
- QT学习1:设计可视化窗口的框架-Ui-Class.docx
- 守心育德 护航成长——小学心理健康教育工作总结.docx
- 小学生科普知识问答大全(权威严谨版).docx
- 小学生科普知识问答大全(适配义务教育课程标准,精准覆盖考点).docx
- 小学生科普知识问答大全(完整版·适配课堂拓展与文献参考)最新.docx
- 最新小学生科普知识问答大全(权威完整版).docx
- 最新小学生科普知识问答大全(文献参考版).docx
- 最新小学生科普知识大全(课堂拓展与课后积累版).docx
- 最新小学生科普知识大全(适配新课标·专业参考版).docx
- 二年级下册语文知识点归纳(系统梳理版·适配教材全册) (实用).docx
- 二年级下册语文知识点归纳(系统梳理版·适配教材全考点).docx
原创力文档

文档评论(0)