使用C语言的线程无限打印1 2 3

使用c语言的线程无限打印1 2 3

在这里,我们需要使用C编程语言中的线程无限次地重复打印1 2 3序列。

让我们来看看我们代码的样本输出:

1 2 3 1 2 3 1 2 3 1 2 3

为此,我们将需要使用三个在C编程语言中并行运行的线程。还需要一个变量,在第一个线程中初始化为1,并根据其上一个值更新其值。然后在函数中运行一个无限循环。

立即学习“C语言免费学习笔记(深入)”;

示例

让我们看看实现我们解决方案的程序:

<!–

Live Demo

–>

#include #include pthread_cond_t cond1 = PTHREAD_COND_INITIALIZER;pthread_cond_t cond2 = PTHREAD_COND_INITIALIZER;pthread_cond_t cond3 = PTHREAD_COND_INITIALIZER;pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;int value = 1;void *foo(void *n){   while(1) {      pthread_mutex_lock(&lock);      if (value != (int)*(int*)n) {         if ((int)*(int*)n == 1) {            pthread_cond_wait(&cond1, &lock);         } else if ((int)*(int*)n == 2) {            pthread_cond_wait(&cond2, &lock);         } else {            pthread_cond_wait(&cond3, &lock);         }      }      printf("%d ", *(int*)n);      if (value == 3) {         value = 1;         pthread_cond_signal(&cond1);      }      else if(value == 1) {         value = 2;         pthread_cond_signal(&cond2);      } else if (value == 2) {            value = 3;            pthread_cond_signal(&cond3);      }      pthread_mutex_unlock(&lock);   }   return NULL;}int main(){   pthread_t tid1, tid2, tid3;   int n1 = 1, n2 = 2, n3 = 3;   pthread_create(&tid1, NULL, foo, (void *)&n1);   pthread_create(&tid2, NULL, foo, (void *)&n2);   pthread_create(&tid3, NULL, foo, (void *)&n3);   while(1);   return 0;}

输出

1 2 3 1 2 3 1 2 3 1 2 3 1 2 3….

以上就是使用C语言的线程无限打印1 2 3的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1443972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
C和C++之间有什么区别?
上一篇 2025年12月17日 20:49:31
如何使用C语言打印数字范围?
下一篇 2025年12月17日 20:49:48

相关推荐

  • 麦芒40手机详细参数曝光:内置双AI 支持卫星通信

    中国电信官方此前宣布将推出新一代麦芒ai手机。最新消息显示,中国电信麦芒40手机上市暨星小辰终端智能体发布会定于6月25日14:30正式开启。cnmo了解到,已经有数码博主提前透露了麦芒40的详细参数信息。 麦芒40 据透露,麦芒40内置小艺与电信星小辰双AI系统,能够实时分析通话内容,有效防范电信…

    2026年8月30日
    000
  • Async/await和.then混合使用时,如何避免异步操作未完成就跳出循环?

    Async/await和.then并发执行的陷阱及解决方案 在使用async/await和.then处理异步任务时,常常会遇到一个棘手的问题:await后的代码执行完毕,async函数就提前返回,导致后续的.then代码未执行完成。本文将深入分析此问题,并提供有效的解决方案。 问题场景:假设父组件使…

    2026年8月30日
    000
  • 网站系统的缓存机制的建立和优化

    网站系统的缓存机制的建立和优化网站系统的缓存机制的建立和优化网站系统的缓存机制的建立和优化网站系统的缓存机制的建立和优化

    讲完了web系统的外部网络环境,现在我们开始关注我们web系统自身的性能问题。 我们的Web站点随着访问量的上升,会遇到很多的挑战,解决这些问题不仅仅是扩容机器这么简单,建立和使用合适的缓存机制才是根本。 最开始,我们的Web系统架构可能是这样的,每个环节,都可能只有1台机器。  一、 MySQL数…

    2026年8月30日 用户投稿
    300
  • 中国玩家力量崛起:《剑星》《暗黑4》等热门游戏Steam中国用户超越美国

    《剑星》登陆pc steam平台后,迅速在中国玩家群体中引发热潮,大量涌入的中国用户再次印证了中国市场在全球游戏产业中的关键地位。近日,海外分析机构alinea analytics发布报告,对比了几款热门游戏在中国与美国市场的玩家占比,进一步凸显出中国玩家在全球游戏格局中的影响力正不断增强。 报告指…

    2026年8月30日
    100
  • win8系统桌面背景无法更改怎么办_win8壁纸设置失败的解决方法

    win8系统桌面背景无法更改怎么办_win8壁纸设置失败的解决方法win8系统桌面背景无法更改怎么办_win8壁纸设置失败的解决方法win8系统桌面背景无法更改怎么办_win8壁纸设置失败的解决方法win8系统桌面背景无法更改怎么办_win8壁纸设置失败的解决方法

    win8桌面背景无法更改的解决方法包括检查个性化设置、权限问题、图片文件、系统文件、注册表设置等。首先确认“桌面背景”是否正确设置,尝试更换图片;其次以管理员身份运行控制面板并调整本地组策略中“阻止更改桌面背景”为禁用;再检查图片是否损坏或格式支持;运行sfc扫描修复系统文件;必要时修改注册表相关键…

    2026年8月30日 用户投稿
    100
  • Linux操作系统安装字体笔记

    对于从事java开发的朋友们来说,了解如何在linux服务器上部署应用至关重要。linux服务器因其成本低、运行稳定而受到青睐。然而,当在linux系统上生成包含中文字符的pdf文档时,常常会遇到乱码问题。这通常是因为服务器缺少相应的中文字体所致。今天,小编将分享在linux操作系统上安装中文字体的…

    2026年8月30日
    1300
  • 非Vue项目中,如何使用vue-quill-editor实现纯文本粘贴?

    非Vue项目中巧妙运用vue-quill-editor实现纯文本粘贴 在非Vue项目中使用vue-quill-editor时,如何将粘贴的富文本转换为纯文本并保持光标位置正确,是许多开发者面临的挑战。本文将详细讲解如何在普通JavaScript项目中,结合quill.js、vue-quill-edi…

    2026年8月30日
    100
  • 面向对象开发有哪些方法?

    探索面向对象开发的多种途径 面向对象编程(OOP)作为一种强大的编程范式,其核心在于将程序分解成一系列相互协作的对象。 而OOP项目的成功,很大程度上取决于所选开发方法的适用性。 虽然Rational统一过程(RUP)广为人知,但面向对象开发领域还有许多其他有效的方法。 让我们一起了解这些备选方案。…

    2026年8月30日
    400
  • mysql可以创建联合索引吗

    mysql可以创建联合索引吗mysql可以创建联合索引吗mysql可以创建联合索引吗mysql可以创建联合索引吗

    mysql可以创建联合索引。MySQL允许用户创建一个最多包含16列的联合索引,创建方法有两个:1、创建表时创建,语法“CREATE TABLE 表名 (列名1 类型 PRIMARY KEY,列名2 类型,列名3 类型,…INDEX 索引名 (列名2,列名3…));”;2、修…

    2026年8月30日 用户投稿
    300
  • win10怎么进入安全模式_win10进入安全模式多种方法

    通过系统设置、Shift+重启、msconfig、强制中断启动或安装介质五种方法可进入Windows 10安全模式,适用于不同故障场景,便于排查软件冲突、驱动问题或病毒影响。 如果您尝试在Windows 10系统中排查软件冲突、驱动问题或病毒影响,进入安全模式是一种有效的诊断手段。安全模式会以最小化…

    2026年8月30日
    200
  • laravel和thinkphp哪个快

    性能比较:Laravel通常比ThinkPHP更快。原因包括:分层架构:Laravel采用分层架构,提高可维护性但可能增加开销,而ThinkPHP采用模块化架构,更轻量但可扩展性较低;缓存:Laravel提供强大的缓存机制,而ThinkPHP的缓存功能相对受限;ORM:Laravel的Eloquen…

    2026年8月30日
    100
  • 机构:2024年日本智能手机销量年增7% 苹果排名第一

    2024年日本智能手机市场强劲复苏,销量同比增长7%!counterpoint research最新报告显示,经济复苏、工资上涨和进口价格稳定等因素共同推动了这一增长。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 市场份额方面,苹果以49…

    2026年8月30日
    300
  • 苹果三星下一代旗舰设计路线分化:iPhone变厚 S26变薄

    据最新爆料,将在2026年发布的两款旗舰手机——iphone 17 pro max和三星s26 ultra在设计理念上或将出现差异。消息称,苹果或将采用更厚的机身设计,而三星则可能进一步缩小体积,实现更加轻薄的外观。 当前在售的iPhone 16 Pro Max与S25 Ultra在尺寸和重量方面十…

    2026年8月30日
    000
  • Mac玩《‎长安幻想》攻略:苹果电脑畅玩iOS手游详细教程

    答案是:可以使用PlayCover侧载方案在Mac上玩iOS版《长安幻想》。具体步骤:1、下载安装PlayCover;2、添加游戏源(https://decrypt.day/library/data.json),搜索并安装游戏;3、自定义键位,例如方向键/WASD控制移动,数字键1-9对应技能,空格…

    2026年8月30日
    000
  • mysql日期用什么类型

    mysql日期用什么类型mysql日期用什么类型mysql日期用什么类型mysql日期用什么类型

    有5种类型:1、YEAR,用于表示年,格式为“YYYY”;2、TIME,用于只需要时间信息的值,格式为“HH:MM:SS”;3、DATE,用于仅需要日期值时,格式为“YYYY-MM-DD”;4、DATETIME,用于需要同时包含日期和时间信息的值,格式“YYYY-MM-DD HH:MM:SS”;5、…

    2026年8月30日 用户投稿
    200
  • 如何使用Composer解决PrestaShop模块管理问题?PrestaShop/ps_linklist助你提升店铺内容可见性

    可以通过以下地址学习 composer:学习地址 在管理一个 PrestaShop 店铺时,我遇到了一个棘手的问题:如何高效地管理和展示静态页面和外部链接。传统的方法是手动编辑 HTML 代码,这不仅耗时,而且不够灵活,无法满足多店铺和多语言的需求。经过一番探索,我发现了一个名为 PrestaSho…

    用户投稿 2026年8月30日
    000
  • Listen1如何分享歌曲_Listen1分享歌曲的多种方式介绍

    可通过应用内分享、复制链接、生成二维码或绑定第三方平台实现分享。首先在播放页点击分享按钮,选择社交软件发送;其次复制歌曲链接并粘贴至目标窗口,附带信息便于识别;再者生成二维码供他人扫码获取;最后通过绑定网易云、QQ音乐等账号同步歌单,间接完成分享。 如果您想将喜欢的音乐通过Listen1分享给朋友或…

    2026年8月30日
    000
  • ios12中打开勿扰模式的操作步骤

    ios12中打开勿扰模式的操作步骤ios12中打开勿扰模式的操作步骤ios12中打开勿扰模式的操作步骤ios12中打开勿扰模式的操作步骤

    php小编新一近日为大家带来了一篇介绍ios 12中打开勿扰模式的操作步骤的文章。在这篇文章中,我们详细介绍了如何在ios 12系统中找到勿扰模式的开启方式,帮助用户更好地利用这一功能,避免被打扰。无论是在工作还是休息时,开启勿扰模式都能够有效地屏蔽来电和通知,让用户享受到更为安静和私密的手机使用体…

    2026年8月30日 用户投稿
    000
  • win10剪贴板历史记录功能怎么开启_win10剪贴板历史记录开启与使用教程

    首先开启剪贴板历史记录功能,进入设置→系统→剪贴板,打开“剪贴板历史记录”开关;随后复制内容并按Win+V调出历史面板,点击任一记录即可粘贴;如需跨设备同步,应在同一Microsoft账户下启用“自动同步我复制的文本”;最后可通过Win+V面板删除单条或全部记录以管理隐私与资源。 如果您在使用Win…

    2026年8月30日
    100
  • 如何高效获取Spring Boot接口的类型提示?

    轻松获取 Spring Boot 接口类型提示,提升开发效率! 前端开发者常常需要后端接口的类型提示来提高开发效率和代码质量。 类似于 TRPC 的 TypeScript 类型提示功能,能够直接从服务端获取接口参数和返回数据的类型定义,省去了繁琐的手工编写接口文档,并降低了因文档错误造成的 bug。…

    2026年8月30日
    000

发表回复

登录后才能评论
关注微信