📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
操作系统 · 中等 · 字节跳动
读写锁是怎么实现的
中等
操作系统
🎤 字节跳动
参考答案
结论:读写锁采用状态拆分与等待队列实现读共享、写独占。核心要点:1. 用一个原子变量记录状态,如高位存读线程数、低位存写锁标志;2. 读锁获取时若无写者则CAS增加读计数,可重入;3. 写锁获取时CAS抢占写标志并自旋等待读计数为0;4. 为避免饥饿常采用写优先策略,写者到来后阻塞新读者;5. 示例:Java AQS中state高16位读计数,低16位写计数,配合等待队列实现。原理:基于互斥量+条件变量或自旋锁,读者间无竞争,写者独占访问。
题目整理自公开面经,答案由校招宝自研生成,仅供参考
🏢 字节跳动 在招岗位(5 条)
行政工程设施管理 - Corporate Services
上海,北京,深圳
大模型安全与对齐研究工程师 - Seed大模型人才校招
上海,北京
直播推荐算法工程师 - 中国交易与广告
上海,北京,深圳
直播推荐大模型算法工程师 - 中国交易与广告
上海,北京,深圳
短剧内容运营 - 红果短剧
北京
查看「字节跳动」企业档案与全部在招岗位 ›
🎤 字节跳动 其他面试真题
10万条数据分页查询优化方案
数据库
48小时内完成一个基于TCP实现一个简单的网络协议
网络
面对对象的三大特征及特性
其他
面向对象编程的三大核心概念和5大基本原则
Java
如何定义只能在堆上生成对象的类
C++
手撕 unique_ptr
C++
查看「字节跳动」全部面试真题 ›
📚 更多「操作系统」面试真题
进程和线程的区别
简单
处理大文件用进程还是线程?
中等
从三个方面回答Linux进程与线程的区别
简单
调用一个函数,说出调用函数的具体过程?
中等
堆和栈的区别?
简单
堆和栈在操作系统底层的实现
中等
对于信号量、volatile 有没有理解?
中等
多核 CPU 处理同一块数据时如何同步?
中等
查看全部「操作系统」真题 ›
‹ 返回面试真题库
首页
企业
考试
攻略
日报
我的