面试问题求助

百度一面面试官问我redis为什么使用多线程不使用单线程,多线程不是更快吗?我说线程上下文切换,竞争CPU,他说那我给你线程隔离,一个CPU一个线程,我说一个线程已经够快了,没有必要,他说多线程不是更快更好吗,就像一个银行一个柜台再快也没有多个柜台快,真的给鼠鼠整不会了问问牛油们这个应该怎么答啊#牛客AI配图神器#
全部评论
我觉得是因为它是以kv形式存储的,如果要处理哪个数据,能快速通过这个k去拿到并处理,本来在处理每一个就已经很快了,单线程排队处理就好了,如果用多线程,增加了切换带来的开销,这个开销带来的代价大于了多线程并行处理的优点,所以在处理数据处理上用单线程,只在设计io的地方用多线程
点赞 回复 分享
发布于 2025-08-17 18:45 北京
我觉得Redis它主要是涉及的是数据读写,性能瓶颈在网络带宽,不是CPU,那它多线程就没有意义了
点赞 回复 分享
发布于 2025-08-14 16:14 陕西
多路I/O复用模型,考察你这个呢
点赞 回复 分享
发布于 2025-08-13 20:24 内蒙古
单线程就是没有多线程快,这个没问题,用Redis的原因一方面是因为他部署简单+社区,另一方面是他不吃资源,你想一个Redis单线程模型是不是不需要那么多cpu资源了,单论速度Redis比很多多线程的都慢,这块要抛开技术来谈了。
点赞 回复 分享
发布于 2025-10-07 16:16 安徽

相关推荐

01-04 08:30
门头沟学院 Java
1、实习介绍2、synchronized的底层原理?3、字节码层面上相关的指令有了解吗?4、synchronized锁升级和优化。5、偏向锁是怎么实现的?轻量级锁、重量级锁在操作系统层面怎么实现的,有了解过吗?6、介绍一下volatie的实现原理,说一说JMM。7、还有一个作用。(防止指令重排序)8、从操作系统的层面取理解Java的线程有哪些部分?或者有哪些组成元素?9、线程进行上下文切换的时候都需要哪些东西来保证线程能够恢复到原来的待运行状态?10、说一下Hashmap和concurrentHashMap,介绍1.8之后就行。concurrentHashMap是怎么控制并发的?11、设计模式,说一下单例模式12、说一下工厂模式常用的地方,13、说一下7层网络模型14、输入一个网址,整个过程有哪些步骤。TCP连接一定会断开吗?15、http1.1和2.0有啥主要的区别?16、jvm运行时的数据区域?17、堆内存分配策略?18、创建一个对象的步骤(业务自定义的类对象)。(类加载、内存分配和初始化(堆)、设置对象头、执行实例初始化代码、返回对象引用)19、类加载机制?20、垃圾回收算法?21、相关的垃圾回收器?22、说一下索引结构?索引类型?23、主键索引会需要回表查询吗?24、最左前缀原则?索引失效场景?25、介绍一下spring中bean加载流程?26、介绍一下threadlocal的原理?怎么处理hash冲突的?27、redis常用的数据结构?28、zset底层实现?插入一个元素的流程?查找时间复杂度?最坏?29、我看你解决了一些缓存问题,你们缓存的主要是什么东西?怎么解决缓存雪崩?30、你分布式锁锁的是什么东西?怎么实现的?
查看30道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务