【发布时间】:2017-01-09 18:17:34
【问题描述】:
使用锁/条件变量如何使 C 程序的结构不允许超过 n 个线程同时执行函数体 f?假设您有 60 个创建的线程,一次只允许 10 个进入在函数中。你能把伪代码写成一般的想法吗?
【问题讨论】:
-
您正在寻找semaphores。
标签: c multithreading locking pthreads condition-variable
使用锁/条件变量如何使 C 程序的结构不允许超过 n 个线程同时执行函数体 f?假设您有 60 个创建的线程,一次只允许 10 个进入在函数中。你能把伪代码写成一般的想法吗?
【问题讨论】:
标签: c multithreading locking pthreads condition-variable
您需要一个互斥体、一个条件变量和一个整数。
【讨论】:
正如@zwol 所建议的,信号量非常适合这项工作:
sem_wait()。sem_post()。【讨论】: