之旅实战"/>
C++多线程之旅实战
前言
在很多公司小组都需要使用会议室进行讨论,但是每个小组都配备一个会议室又会很浪费。所以就将所有的会议室都拿出来放到一起,那个小组需要就像行政部门申请即可,根据申请的先后顺序使用会议室。使用完成以后自动归还,无需派专人进行管理。
基于这一思路,我们也可以把线程资源放到一个区域,然后根据每个用户的需求分配线程资源。并且还可以实现自动化的线程资源分配。
设计线程池有几个关键的问题:第一,线程中应该创建几个工作线程;第二,是否应该等待线程执行结束…
第一个线程
submit
不断提交任务,然后threads获取其中任务然后执行。这就是线程池的主要执行原理。
#include <thread>
#include <atomic>
#include <queue>
#include <vector>
#include <iostream>
class join_threads
{std::vector<std::thread> &threads;
public:explicit join_threads(std::vector<std::thread> &threads_):threads(threads_){}~join_threads(){for(unsigned long i = 0 ; i < threads.size();++i){if(threads[i].joinable())threads[i].join(
更多推荐
C++多线程之旅实战
发布评论