0

我在线程池中有 5 个线程。如果我收到来自用户的 10 个请求,我将如何使用 cpp 为每个线程处理 2 个请求。我想动态处理请求。我的线程将保持不变,但请求可以是动态的,我还想显示线程执行的日志

4

1 回答 1

4

线程池背后的思想是有固定数量的线程,当有新的作业请求进来时,它会被分配给一个可用的线程。如果没有可用线程(即所有线程都在忙于处理其他作业),则作业请求被添加到 FIFO 队列的末尾。每当线程完成当前正在处理的作业请求时,它会检查 FIFO 队列以查看作业请求是否在队列中等待处理。如果 FIFO 中有作业请求,线程会将其从 FIFO 头部弹出并处理;如果没有,线程将进入休眠状态,直到下一个作业请求出现(此时它或另一个线程将被线程池唤醒,以便可以处理新的作业请求)。

通过这种方式,可以使用有限数量的线程来处理任意数量的作业请求。

于 2020-02-22T15:48:46.470 回答