gpt4 book ai didi

c - 如何在 posix 线程之间发出缓冲区已满状态的信号

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:08 25 4
gpt4 key购买 nike

我有两个线程,主线程'A'负责多个进程之间的消息处理。当线程 A 收到缓冲区已满消息时,它应该通知线程 B 并传递一个指向缓冲区的指针,然后线程 B 将处理该缓冲区。

当线程 B 完成时,它应该通知线程 A 它已经完成。

我如何在 Linux 上使用 C 语言使用 posix 线程来实现它。我看过条件变量,这是要走的路吗? .我在多线程编程方面没有经验,希望获得有关最佳途径的一些建议。

谢谢

最佳答案

如果放宽 B 开始处理之前缓冲区必须已满以及 A 再次开始填充之前缓冲区必须为空的条件,那么这就是经典 producer-consumer problem .

如果您不能放宽这些条件,那么我看不出将两个线程之间的功能分开的好处。由于线程 A 不能在线程 B 处理时向缓冲区添加内容,而线程 B 不能在线程 A 向缓冲区添加内容时进行任何处理,因此所有工作都可以在一个线程中完成。

关于c - 如何在 posix 线程之间发出缓冲区已满状态的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2673543/

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