gpt4 book ai didi

C 多线程控制与信号量

转载 作者:行者123 更新时间:2023-11-30 17:29:59 25 4
gpt4 key购买 nike

我正在尝试了解线程和信号量。

我希望编写一个有4个线程的代码,它输出一个像“foo dee”这样的字符串,但我希望线程1只输入“f”,线程2只输入“o”,线程3只输入“e” "和 "d"以及第四个线程仅键入空格。

我如何链接线程,例如在屏幕上获得“foo dee”,这是所有线程的共同工作。

我不需要一个解决方案,而是一个我可以使用的语法示例。

感谢您的帮助。

编辑:在 Linux 上工作

最佳答案

尝试强制线程像这样按顺序操作就违背了创建线程的初衷。所有其他线程必须等待预定义行为发生。为了实现这个目标,你必须以一种与顺序操作没有太大区别的方式来阻止线程(然后在此之上,你添加线程创建和管理的开销)

...但如果你真的想这样做,我会使用信号而不是信号量。信号量和互斥体通常用于控制对共享资源的并发访问。通过强制执行顺序,确实没有共享资源可言。

信号背后的想法是一个线程将等待,直到另一个线程启动它。看一下以下函数:

pthread_cond_wait()
pthread_cond_signal()

我认为它们是获得您想要的东西的最佳方式。

关于C 多线程控制与信号量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25371134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com