首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客775429962号
门头沟学院 Java
发布于四川
关注
已关注
取消关注
@AtoTom:
C++ 和 Go 语言实现两个线程交替打印数字 1-10
C ++ 实现#include <iostream>#include <thread>#include <condition_variable>#include <mutex>using namespace std;mutex mut; // 定义互斥量condition_variable cond1, cond2; // 定义两个条件变量,不同线程等待不同的条件变量int num = 1;void thread1() { while (num <= 10) { unique_lock<mutex> locker(mut); // 使用 unique_lock 锁管理类,自动上锁和解锁 cout << "thread1: " << num << endl; num++; cond2.notify_one(); // 线程 1 打印完成,通知线程 2 打印 cond1.wait(locker); // 等待线程 2 打印完成再继续打印 }}void thread2() { while (num <= 10) { unique_lock<mutex> locker(mut); cout << "thread2: " << num << endl; num++; cond1.notify_one(); cond2.wait(locker); }}int main() { thread t1(thread1); // 定义两个线程 thread t2(thread2); t1.join(); // 回收线程资源 t2.join(); system("pause"); return 0;}思路:两个线程分别使用两个不同的条件变量控制,共同等待用一个互斥量,从而实现交替打印的效果Go 实现 1package mainimport ( "fmt" "sync")const ( MAX = 10 // 最大打印到多少 GoCount = 2 // 同时执行的线程数)func main() { fmt.Println(Solution(MAX, GoCount))}func Solution(MAX int, GoCount int) []int { wg := sync.WaitGroup{} wg.Add(GoCount) res := make([]int, 0) count := 1 for i := 0; i < GoCount; i++ { go func(k int) { // 注意需要传递参数到协程内 for { now := count if now > MAX { wg.Done() return } // 这条语句保证任务均匀地分配到所有的协程 // now 是当前的任务编号,GoCount 是协程的数量,k 是当前协程的编号。 if now%GoCount == k { res = append(res, now) count++ } } }(i) } wg.Wait() return res}Go 实现 2package mainimport ( "fmt" "sync")func main() { var wg sync.WaitGroup wg.Add(2) ch1 := make(chan bool) ch2 := make(chan bool) go func() { count := 1 for count < 10 { <-ch1 fmt.Println("groutine 1: ", count) count = count + 2 ch2 <- true } wg.Done() }() go func() { count := 2 for count <= 10 { <-ch2 fmt.Println("groutine 2: ", count) count = count + 2 if count <= 10 { ch1 <- true } } wg.Done() }() ch1 <- true wg.Wait()}思路:两个 channel 分别控制两个协程,两个 count 计数避免资源竞争
点赞 3
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
12-05 10:38
联想_后端开发部_语音算法工程师(准入职员工)
海康威视内推,海康威视内推码
岗位:武汉 嵌入式开发timeline:8.30 测评,10.9 一面,10.11 二面一面技术:自我介绍讲下实习经历平常怎么debug项目中有没有遇到什么问题,怎么解决的介绍一下学校经历了解数据结构吗?基本的数据结构?查找搜索效率?有什么方法可以提高效率?具体围绕数据结构问了很多RTOS,多任务操作反问:做存储固件的,具体的进来再分二面HR:北京线下,地点在北京研发中心,具体内容就是唠家常,一些HR面的基本问题销售工程师工作体验,总结累但成长很多。1.大家最先关注的就是HIK的工作压力,只能说体面厂没有辜负盛名!名不虚传!我来这边是销售岗,基本上每天都要差不多11点下班。因为销售不仅需要对接...
点赞
评论
收藏
分享
今天 11:27
复旦大学 Java
25届同学现在还能走校招吗?
许多同学在临近毕业时尚未获得工作机会,对于毕业后是否能继续参与校园招聘感到不确定,同时也疑惑若缺乏工作经验,通过社会招聘是否可能成功。通常情况下,只要未曾缴纳社保,理论上便保留着应届毕业生身份。但即便拥有此身份,部分企业——尤其是大型公司——可能不会提供校招机会;而另一些企业则认可该身份并允许参与校招;还有一些企业则根本不在意是否应届。下面我们将企业进行分类说明,以帮助大家在毕业后更有效地应对求职。国有企业首先谈谈国有企业。对于多数国企,只要毕业後未缴纳社保,通常仍可参加校招,且国企普遍更倾向录用应届生。在招聘要求中,常见表述如“支持2022届、2023届、2024届毕业生”或“往届应届生”,...
点赞
评论
收藏
分享
10-26 11:02
已编辑
北京石油化工学院 机械设计/制造
机械垃圾学校求工作
轻点喷
gelmanspar...:
奖学金删掉,自我评价删掉,简历压缩一下,写一页
如果再来一次,你还会学机...
点赞
评论
收藏
分享
11-15 10:25
西南大学 Java
27届准备找实习
27届准备找日常实习,各位大佬能不能点评一下我的简历看看有什么地方需要改进,还有现在hot100准备二刷,是等完全熟透hot100再投还是一边刷一边投,包括其他还需要准备的地方有哪些?
许愿简历通过的查理斯...:
校友 一边刷一边投吧 最好再做一个项目 然后在年前找个实习 年后就是神仙打架了
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
TCP/IP高频面试题--可爱图片版
1.0W
2
...
有点东西~牛客和14位牛友一起做了个官网投递插件
9814
华为开奖交流
热聊中
3
...
兄弟们走路不要刷牛客😭
2358
4
...
双非本科结束秋招~
2307
5
...
快手日常实习面经(已oc)
2082
6
...
2025年对你来说是怎样的一年?
1826
7
...
回顾下25年,感想颇多
1670
8
...
数字马力长沙 ai 岗二面 12.5
1078
9
...
学历的重要性在这一刻体现的淋漓尽致
1028
10
...
今年的校招薪资情况竟然是这样....
1013
创作者周榜
更多
正在热议
更多
#
uu们,春招你还来吗?
#
14482次浏览
93人参与
#
2025年终总结
#
14915次浏览
232人参与
#
百融云创求职进展汇总
#
281次浏览
0人参与
#
哪一瞬间让你觉得“这班不如不上”
#
13123次浏览
164人参与
#
为了去实习,我赌上了___
#
23080次浏览
209人参与
#
工作前VS工作后,你的心态变化
#
14947次浏览
167人参与
#
第一份工作能做外包吗?
#
87262次浏览
584人参与
#
父母对你找工作是助力还是阻力?
#
14640次浏览
210人参与
#
高薪高压 vs 低薪wlb,你怎么选?
#
13370次浏览
144人参与
#
硬件兄弟们 甩出你的华为奖状
#
117394次浏览
699人参与
#
十二月请对我好一点
#
26883次浏览
358人参与
#
一人推荐一个值得做的项目
#
10716次浏览
151人参与
#
学历or实习经历,哪个更重要
#
203074次浏览
1077人参与
#
秋招暂停,我将对以下公司做出处罚__
#
42809次浏览
176人参与
#
降低公积金和取消房补怎么选
#
23576次浏览
79人参与
#
晒一晒你收到的礼盒
#
88134次浏览
430人参与
#
工作中出现了XX情况正常吗
#
35496次浏览
224人参与
#
我的秋招总结
#
258284次浏览
4263人参与
#
回顾今年你干过的最“勇”的一件事
#
14884次浏览
180人参与
#
总结:哪家公司最喜欢泡池子
#
155724次浏览
560人参与
#
大厂无回复,继续等待还是奔赴小厂
#
288936次浏览
1781人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务