首页

文章

Linux多线程实现线程间不停的切换

发布网友 发布时间:2022-04-19 22:23

我来回答

1个回答

热心网友 时间:2023-09-04 09:54

你这个问题很有意思。第一次执行的时候,可以看出,能执行0~6共7次;第二次的时候,从6开始,到5,只有2次了,并且以后都是只有2次。
基于你的描述,我想可以用互斥信号量来做。
1、初始化2个信号量pmutex1(有资源), pmutex2(无资源),初始化gnum=0
2、启动两个线程
2.1 线程1
lock_the_mutex_signal(pmutex1); // 上锁自身线程,首次可执行
while (gnum < 5) {
do_sth(); // 做你的业务逻辑

gnum++; // 增加执行次数

} // end while()
unlock_the_mutex_signal(pmutex2); // 解锁另一线程
2.2 线程2

lock_the_mutex_signal(pmutex2); // 上锁自己,首次执行将阻塞,并交出CPU
while (gnum > 5) {
do_sth(); // ...

gnum--; // ...

} // end while()
unlock_the_mutex_signal(pmutex1); // release the lock
PS:如果你不是非常严格地(从系统级杜绝不该被执行的线程被调用)要求线程切换的话,这个逻辑应该可以工作。自己没有试,希望你明白我的思想,如有错误,自己再修改一下。
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 如何监控linux物理机的线程挂起引起服务器瘫痪 linux c语言怎样挂起线程/进程 linux中的线程有哪几种状态 苹果xr手机看视频的同时可以聊天,怎么设置? 苹果手机怎么直接接听视频聊天 苹果XR手机可以设置来电动画吗? 苹果xr可以电话视频吗 怎么在最右的视频后面发后面发视频 怎么在电脑和手机上打日文 求日文字体或字体包,要说明安装方法的 求Windows XP系统安装初的日语字体。 怎么在电脑上打出日语字啊? 请问在电脑上装日语输入法怎么弄? 怎样在电脑上打日文字? 怎么安装日语字体的 如何在word中让中文和日文汉字使用不同字体? 如何在电脑上添加日文打字? 如何在系统中安装字体  如:繁体中文.日文等 如何安装日语字体 怎样在电脑里安装日文打字输入法? 关于Linux 线程pthread_join的用法 linux内核线程死锁或死循环之后怎么让系统宕机重启 Linux内核线程死锁或死循环之后如何让系统宕机重启 Linux多进程和线程同步的几种方式 linux多线程问题:pthread_join 和 pthread_exit ... 嵌入式 linux下sleep函数到底是线程休眠还是进程休眠 Linux POSIX编程如何查询指定的线程是否阻塞 linux 一个线程释放互斥锁后另一个线程为什么不能... linux子线程挂掉主线程会退出吗 Linux线程阻塞问题 linux 多进程信号同步问题 线程挂起软件 Linux如何进行进程调度?引入线程机制后,进程管理... Linux线程的几种结束方式 linux线程如何运行? linux如何进行线程管理 oppo手机相册怎么提取文字 oppo手机照片怎么提取文字 oppo手机如何提取照片中的文字 oppo手机照片如何提取文字
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com