我有两个线程,主线程'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/