首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
zk_kiger
2021-08-05 22:06
西安邮电大学 Java
关注
已关注
取消关注
字节面试题:一千万大小的数组,10个线程并发修改数组
一千万大小的数组,10个线程并发修改数组,要求使用一个 Mutex 来解决并发问题。
面试官就简单给了一下数组大小,mutex 拥有 lock unlock 操作,开 10 个线程,获取一个随机下标,去调用 modify 方法。自己大概复现了一下代码,如下:
面试官要求使用一个 mutex,各位大佬有什么想法吗,交流交流,最好能附上代码
🤗
#字节跳动面试#
#面试题目#
#字节跳动#
提示
全部评论
推荐
最新
楼层
红烧排骨好吃
五邑大学 Java
大佬们看看这样行吗实现代码+测试代码+测试结果
2
回复
分享
发布于 2021-08-19 10:02
红烧排骨好吃
五邑大学 Java
用一个一千万个位的变量,访问那个下边就那个置1,如果已经是1则阻塞,保证置1的过程是原子的就行了,这样可以吗
3
回复
分享
发布于 2021-08-18 18:09
白帽帅哥
西北大学 Java
用全局?
点赞
回复
分享
发布于 2021-08-05 23:17
清风觅影
西安电子科技大学 区块链
直接用cas实现原子操作吧。。。这一个mutex真没想明白。。。
点赞
回复
分享
发布于 2021-08-06 00:36
面试官不要为难我胖虎了
华中科技大学 C++
#include <bits/stdc++.h> std::mutex data_mutex; std::condition_variable data_var; int flag=0; int i=0; int array[100]={0}; void modify(int arr[], int i){ int index=rand()%100; std::cout<<index<<std::endl; arr[index]=i+1; } void printA(int i){ while(1){ std::unique_lock<std::mutex> lck(data_mutex); data_var.wait(lck, [=]{return flag==i;}); std::cout<<"Threadi:"<<i<<std::endl; modify(array, i); flag=(flag+1)%10; data_var.notify_all(); } } int main(){ std::vector<std::thread> thread_arr; thread_arr.reserve(10); for(int i=0; i<10; ++i){ thread_arr.emplace_back(std::thread{printA, i}); } for(int i=0; i<10; ++i){ thread_arr[i].join(); } } 这个代码,我的想法是用i来区分10个线程,当flag==i的时候,执行当前线程,其他会阻塞等待flag 但是每10个线程生成的index都是一样的,想知道这是怎么回事,有大佬指点吗?
点赞
回复
分享
发布于 2021-08-06 11:00
薇猪猪
百度_后端
是不是模拟乐观锁的情况,识别竞争加锁?不然一个锁,实在太难快起来😂
点赞
回复
分享
发布于 2021-08-07 03:23
疾风小飞飞
湖南大学 C++
我是垃圾,我直接在obj[n]++前面mutex.Lock(),后面mutex.Unlock()😂
点赞
回复
分享
发布于 2021-08-12 12:50
还没有回复哦~
相关推荐
2024-12-30 10:53
已编辑
门头沟学院 嵌入式工程师
单片机岗位常见面试问题——C语言(1)
一、static关键字1.static关键字的作用? static是被声明为静态类型的变量,存储在静态区(全局区)中,其生命周期为整个程序。静态局部变量,其作用域为一对{ }内,静态全局变量,其作用域为当前文件。静态函数,其作用域为当前文件,不能作为接口暴露给其他文件。静态变量如果没有被初始化,则自动初始化为0。2.为什么 static变量只初始化一次? 对于所有的对象(不仅仅是静态对象),初始化都只有一次,而由于静态变量具有“记忆”功能,初始化后,一直都没有被销毁,都会保存在内存中的静态区,所以不会再次初始化。存放在静态区的变量的生命周期一般比较长,它与整个程序...
单片机岗位必备八股知识
点赞
评论
收藏
分享
01-02 18:05
西南交通大学 电池测试工程师
求下班迅速回血方式
上班之后那股冲天的怨气和由内而外的疲惫是止不住的!下班回家后依然久久不能抽离和恢复,瘫软在床上直到睡觉 请问你们都有哪些让你快速抽离和回血的活动和方式?救救孩子吧!
带带杨巅峰:
打搅
点赞
评论
收藏
分享
2024-12-06 09:04
武汉理工大学 硬件开发
华为开奖
#晒一晒我的offer# 爱信等的胜利优秀实习生直通主管面9.26主管面12.4意向书中途没有hr谈薪电话,接口人保温三次,all in终于结束了
晒一晒我的offer
点赞
评论
收藏
分享
2024-11-15 22:36
华中师范大学 Java
11月啦!稳啦!
哈哈哈哈哈十一月啦!终于轮到我捡漏啦!全都稳啦!!!!
互联网搬砖工_:
接好运
点赞
评论
收藏
分享
昨天 09:16
已编辑
门头沟学院 测试工程师
年底了,你们公司开始裁员了?
年底了,看到大家在牛客发布的动态有的同学被裁了,大部分牛友是没有拿任何赔偿的,只有少部分拿了较少的赔偿,在这里还是呼吁大家维护自己合法权益,净化职场环境。希望大家遇到了理性对待,切莫忍气吞声,这样的做法只会让他们得寸进尺。我自己在公司也看到过裁人的例子,大多数人选择主动离职,连自己的合法权益都不争取。好多HR和领导都是吓唬或者威逼利诱,没有人去揭露他们丑恶的行为,导致我们没有拿到赔偿。#牛客激励计划#大家可以看下我之前写的帖子,欢迎大家收藏和点赞,如果帮到你了希望你们送我一朵小红花。感谢大家。https://www.nowcoder.com/discuss/700710614494142464...
投递牛客等公司10个岗位 >
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
14
分享
评论
提到的真题
返回内容
招聘动态
查看更多
26届实习社群招新啦!
全站热榜
1
...
实习期,因为git不熟练,我被diss了
1.6W
2
...
快手校招卡试用期不给过
9732
3
...
刚出炉,神仙公司名单。。。
7003
4
...
【有奖互动】领导说你卡点到,你会如何高情商回答
4274
5
...
秋招offer选择,来不及了
3465
6
...
2025 知性 爱己
3133
7
...
发现了自己学生思维消失的瞬间!
2502
8
...
阿里被裁,找了web3.0远程工作
2434
9
...
转2012竟然泡出来了
2242
10
...
在大厂,我见到的,低阶与高阶的思维差异
2111
正在热议
#
2025,我想......
#
7995次浏览
120人参与
#
我的简历长这样
#
2062778次浏览
28006人参与
#
夸一夸2024年的自己
#
8595次浏览
107人参与
#
投递实习岗位前的准备
#
1278687次浏览
19251人参与
#
职场高情商速成班
#
372次浏览
13人参与
#
秋招前后对offer的期望对比
#
193304次浏览
1449人参与
#
简历被挂麻了,求建议
#
2759485次浏览
35060人参与
#
实习,投递多份简历没人回复怎么办
#
2636972次浏览
36179人参与
#
工作中,你有没有遇到非常爱骂人的领导?
#
7571次浏览
74人参与
#
快手求职进展汇总
#
454681次浏览
5380人参与
#
不给转正的实习,你还去吗
#
1643062次浏览
18111人参与
#
我在牛客求捞
#
8014次浏览
57人参与
#
互联网没坑了,还能去哪里?
#
1211233次浏览
13329人参与
#
当下环境,你会继续卷互联网,还是看其他行业机会
#
50204次浏览
411人参与
#
校招入职后的感受
#
182399次浏览
2134人参与
#
当你面对裁员会如何?
#
59169次浏览
432人参与
#
听劝,这个公司值得去吗
#
358737次浏览
1453人参与
#
寒假躺平还是提前实习
#
115281次浏览
990人参与
#
如果重来一次,你还会学计算机吗
#
37616次浏览
380人参与
#
美团求职进展汇总
#
1443039次浏览
13165人参与
牛客网
牛客企业服务