【发布时间】:2018-03-09 23:39:44
【问题描述】:
我最近在一次采访中被问到这个问题。我想知道实现这一点的最佳方法是什么。
假设我有 3 个线程 t1、t2、t3 和两个队列 q1、q2。
t1 向 q1 写入数据
t2 向 q2 写入数据
t3 应尽快从 q1 和 q2 读取数据。
我认为我可以使用条件变量来读取 q1 和 q2。这是可能的还是有更好的方法。
【问题讨论】:
-
您是否考虑过使用本地套接字 (
AF_LOCAL) 进行排队并使用select()或pselect()函数进行被动等待? -
@FabienBouleau Pipes 也可以。
-
@FabienBouleau 是的。这种方法是很有可能的。谢谢。知道如何用队列实现同样的效果吗?
-
@AndrewHenle 我过去在管道方面遇到了一些问题。我记得很好,那是你只有一个读者(第一个读者首先服务)。但在这种情况下你是对的,因为只有一个读者。
-
@FabienBouleau 为此使用套接字堆栈或管道?大锤/螺母。
标签: c multithreading synchronization queue pthreads