【发布时间】:2015-11-02 15:53:36
【问题描述】:
我正在用 C 编写代码,其中我有多个写入器(或馈送器)线程,它们写入高优先级队列或低优先级队列,以及一个从高优先级队列和低优先级队列读取的工作线程(或消费者)线程排队。
我有一个使用 pthread 互斥锁的线程同步机制。
在编写此代码时,我有一个疑问,即我是否应该为高优先级队列和低优先级队列设置单独的锁? 或者我应该为高优先级和低优先级队列设置一个公共锁。
【问题讨论】:
-
发布您的代码。有一些方法可以在没有任何锁的情况下做到这一点。
-
它现在的方式太宽泛了。发布细节,最好是代码,如果你能以简洁易懂的形式获得它。
-
请找到伪代码,因为我无法粘贴确切的代码。
-
typedef struct globals_s { /* 馈线线程 / pthread_t thread_A; pthread_t 线程_B; pthread_t 线程_C; /工作线程/pthread_t thread_W; //i> 队列和同步 / dbl_qhead_t work_q[WORKER_WORK_Q_MAX]; pthread_mutex_t work_q_mutex[WORKER_WORK_Q_MAX]; pthread_cond_t work_q_cond[WORKER_WORK_Q_MAX]; / 用于同步初始化 */ pthread_mutex_t init_mutex; pthread_cond_t init_cond; } globals_t;
-
对不起,我无法发布代码,它很大。我如何粘贴该代码?
标签: c multithreading