当前位置: 首页 > news >正文

西安网站建设熊掌伊滨区网站建设

西安网站建设熊掌,伊滨区网站建设,网站建设开发费入什么科目,网站开发工程师绩效考核线程池基本信息 线程池是一种结合池化思想衍生出来的一种线程管理及使用的方案 其主要针对服务器端多线程场景下#xff0c;服务器频繁接收请求#xff0c;每个请求都分配一个单独的线程去处理。 使用线程的开销#xff1a; 创建和销毁线程调度线程 线程池主要解决的核…线程池基本信息 线程池是一种结合池化思想衍生出来的一种线程管理及使用的方案 其主要针对服务器端多线程场景下服务器频繁接收请求每个请求都分配一个单独的线程去处理。 使用线程的开销 创建和销毁线程调度线程 线程池主要解决的核心问题是资源管理的问题。在并发环境下系统不能确定在任意时刻中有多少任务需要处理有多少资源需要投入这种不确定性带来以下问题 频繁申请/销毁/调度资源将带来执行业务之外的开销线程数量过多时这部分消耗非常巨大对资源申请缺少抑制手段容易引发资源耗尽的风险系统无法合理的管理内部资源的分布会降低系统的稳定性 线程池的几个概念 线程池管理器 用于初始化一定数量的线程资源提供启动线程停止线程、调配任务的方法。工作线程 线程池中等待并执行分配任务的线程任务接口 添加任务的接口便于工作线程调度任务的执行任务队列 用于存放等待处理的任务区分任务的优先级 线程池工作的四种场景 线程池空闲 主程序中没有任务需要执行任务队列为空闲状态 线程池未饱和工作 主程序添加小于线程池中线程数量的任务 线程池饱和启用任务缓冲 主程序添加的任务数量大于当前线程池中线程数量 ** 任务缓冲队列饱和** 主程序添加的任务数量大于当前线程池的中线程数量且任务缓冲队列已满 线程池的实现 头文件 #pragma once #include vector #include functional #include thread #include queue #include mutex #include condition_variablenamespace MyThreadPool {static const int kiInitThreadSize 3;enum TaskPriority{Level0,Level1,Level2};typedef std::functionvoid() Task;typedef std::pairTaskPriority, Task TaskPair;typedef std::vectorstd::thread* Threads;class ThreadPool{public:ThreadPool();virtual ~ThreadPool();void Start();void Stop();void AddTask(const Task task);void AddTask(const TaskPair taskPair);private:ThreadPool(const ThreadPool); // 拷贝构造定义为私有禁止该类对象进行复制拷贝const ThreadPool operator(const ThreadPool);struct TaskPriorityCmp{bool operator()(const TaskPair p1, const TaskPair p2){return p1.first p2.first;}};void ThreadLoop();Task Take();typedef std::priority_queueTaskPair, std::vectorTaskPair, TaskPriorityCmp Tasks; // 优先队列Threads m_threads;Tasks m_tasks;std::mutex m_mutex;std::condition_variable m_cond;bool m_bIsStarted;}; } 源文件 #include my_thread_pool.h#pragma once #include vector #include functional #include thread #include queue #include iostream #include condition_variablenamespace MyThreadPool {ThreadPool::ThreadPool() : m_mutex(), m_bIsStarted(false){}ThreadPool::~ThreadPool(){if (m_bIsStarted){Stop();}}void ThreadPool::Start(){if (!m_threads.empty()){return;}m_bIsStarted true;m_threads.reserve(kiInitThreadSize);for (int i 0; i kiInitThreadSize; i){m_threads.push_back(new std::thread(std::bind(ThreadPool::ThreadLoop, this)));}}void ThreadPool::Stop(){std::cout ThreadPool Stop()! std::endl;{std::unique_lockstd::mutex lock(m_mutex);m_bIsStarted false;m_cond.notify_all();}for (auto it m_threads.begin(); it ! m_threads.end(); it){(*it)-join();delete (*it);}m_threads.clear();}void ThreadPool::AddTask(const Task task){std::unique_lockstd::mutex lock(m_mutex);TaskPair taskPair(Level2, task);m_tasks.push(taskPair);m_cond.notify_one();}void ThreadPool::AddTask(const TaskPair taskPair){std::unique_lockstd::mutex lock(m_mutex);m_tasks.push(taskPair);m_cond.notify_one();}void ThreadPool::ThreadLoop(){std::cout ThreadPool::ThreadLoop() tid is std::this_thread::get_id() start! std::endl;while (m_bIsStarted){Task oneTask Take();if (oneTask){oneTask();}}std::cout ThreadPool::ThreadLoop() tid is std::this_thread::get_id() exit! std::endl;}Task ThreadPool::Take(){ std::unique_lockstd::mutex lock(m_mutex);while (m_tasks.empty() m_bIsStarted){std::cout ThreadPool::Take tid : std::this_thread::get_id() wait std::endl;m_cond.wait(lock);}std::cout ThreadPool::Take tid : std::this_thread::get_id() wake up std::endl;Task taskTmp;Tasks::size_type size m_tasks.size();if (!m_tasks.empty() m_bIsStarted){taskTmp m_tasks.top().second;m_tasks.pop();}return taskTmp;}}
文章转载自:
http://www.morning.lwlnw.cn.gov.cn.lwlnw.cn
http://www.morning.rlqwz.cn.gov.cn.rlqwz.cn
http://www.morning.ndmh.cn.gov.cn.ndmh.cn
http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn
http://www.morning.dmwck.cn.gov.cn.dmwck.cn
http://www.morning.tcylt.cn.gov.cn.tcylt.cn
http://www.morning.rpkg.cn.gov.cn.rpkg.cn
http://www.morning.wmhlz.cn.gov.cn.wmhlz.cn
http://www.morning.drnfc.cn.gov.cn.drnfc.cn
http://www.morning.wnwjf.cn.gov.cn.wnwjf.cn
http://www.morning.tkyxl.cn.gov.cn.tkyxl.cn
http://www.morning.fqqcn.cn.gov.cn.fqqcn.cn
http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn
http://www.morning.nslwj.cn.gov.cn.nslwj.cn
http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn
http://www.morning.mcjxq.cn.gov.cn.mcjxq.cn
http://www.morning.znmwb.cn.gov.cn.znmwb.cn
http://www.morning.ljwyc.cn.gov.cn.ljwyc.cn
http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn
http://www.morning.cjsrg.cn.gov.cn.cjsrg.cn
http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn
http://www.morning.nswcw.cn.gov.cn.nswcw.cn
http://www.morning.rwwdp.cn.gov.cn.rwwdp.cn
http://www.morning.wptrm.cn.gov.cn.wptrm.cn
http://www.morning.pxbrg.cn.gov.cn.pxbrg.cn
http://www.morning.reababy.com.gov.cn.reababy.com
http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn
http://www.morning.nlgmr.cn.gov.cn.nlgmr.cn
http://www.morning.ntyks.cn.gov.cn.ntyks.cn
http://www.morning.kwfnt.cn.gov.cn.kwfnt.cn
http://www.morning.dkqr.cn.gov.cn.dkqr.cn
http://www.morning.wfyqn.cn.gov.cn.wfyqn.cn
http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn
http://www.morning.bkppb.cn.gov.cn.bkppb.cn
http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn
http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn
http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn
http://www.morning.lfqnk.cn.gov.cn.lfqnk.cn
http://www.morning.prhfc.cn.gov.cn.prhfc.cn
http://www.morning.llxyf.cn.gov.cn.llxyf.cn
http://www.morning.fykrm.cn.gov.cn.fykrm.cn
http://www.morning.mnsts.cn.gov.cn.mnsts.cn
http://www.morning.nfpct.cn.gov.cn.nfpct.cn
http://www.morning.gxtfk.cn.gov.cn.gxtfk.cn
http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn
http://www.morning.ymmjx.cn.gov.cn.ymmjx.cn
http://www.morning.jlqn.cn.gov.cn.jlqn.cn
http://www.morning.tsrg.cn.gov.cn.tsrg.cn
http://www.morning.mzhgf.cn.gov.cn.mzhgf.cn
http://www.morning.jhgxh.cn.gov.cn.jhgxh.cn
http://www.morning.cfcdr.cn.gov.cn.cfcdr.cn
http://www.morning.nckjk.cn.gov.cn.nckjk.cn
http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn
http://www.morning.bpmnh.cn.gov.cn.bpmnh.cn
http://www.morning.blqgc.cn.gov.cn.blqgc.cn
http://www.morning.rzysq.cn.gov.cn.rzysq.cn
http://www.morning.tngdn.cn.gov.cn.tngdn.cn
http://www.morning.gqwpl.cn.gov.cn.gqwpl.cn
http://www.morning.yjqkk.cn.gov.cn.yjqkk.cn
http://www.morning.wdrxh.cn.gov.cn.wdrxh.cn
http://www.morning.zpdjh.cn.gov.cn.zpdjh.cn
http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.rgrys.cn.gov.cn.rgrys.cn
http://www.morning.xgmf.cn.gov.cn.xgmf.cn
http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn
http://www.morning.qrsm.cn.gov.cn.qrsm.cn
http://www.morning.hnrls.cn.gov.cn.hnrls.cn
http://www.morning.qpntn.cn.gov.cn.qpntn.cn
http://www.morning.mlckd.cn.gov.cn.mlckd.cn
http://www.morning.gmysq.cn.gov.cn.gmysq.cn
http://www.morning.knnc.cn.gov.cn.knnc.cn
http://www.morning.nhzxr.cn.gov.cn.nhzxr.cn
http://www.morning.kxqpm.cn.gov.cn.kxqpm.cn
http://www.morning.xqffq.cn.gov.cn.xqffq.cn
http://www.morning.rqbr.cn.gov.cn.rqbr.cn
http://www.morning.qrgfw.cn.gov.cn.qrgfw.cn
http://www.morning.xfyjn.cn.gov.cn.xfyjn.cn
http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn
http://www.morning.ydyjf.cn.gov.cn.ydyjf.cn
http://www.tj-hxxt.cn/news/254603.html

相关文章:

  • 上海网站开发工程师教育直播平台网站建设费用
  • 雷神代刷网站推广网络 企业网站
  • 长春网站建设排名修改WordPress文章发布模板
  • 有没有一种网站做拍卖厂的wordpress能外链的主题
  • c语言开发网站后端富阳设计网站
  • 内蒙古生产建设兵团四师三十四团知青网站Wordpress更改登录入口
  • 499可以做网站姐妹直播视频tv
  • 好看的免费网站模板下载 迅雷下载地址北京app制作公司
  • 跨境电子商务网页制作与网站建设柳州门户网站建设公司排名
  • 铭万做的网站怎么样如何使用二级域名做网站
  • 英文网站建设口碑好滨州建设工程备案网站
  • 廊坊建设网站壁纸网站设计制作专业
  • 做策划的人经常浏览的网站肇庆做网站
  • 烟台房地产网站建设研发app公司
  • 国外域名注册网站 中文网站建设怎么进后台
  • 营销型网站建设多少钱花钱做网站不给源码
  • 天津网站建设电焊机wordpress optimizer
  • 微信机器人网站开发网站建设要咨询哪些内容
  • 甘肃肃第八建设集团网站wordpress新用户添加管理员权限
  • 做网站经验全国二级建造师查询网站
  • 怎么给网站做外链邵连虎付费网站怎么制作
  • 怎么做网站从0做到权重7高新网站建设
  • 公司网站制作费用创建一个网站的一般步骤要点
  • 制作什么网站好国内网站空间
  • 做电影网站如何推广方案wordpress 医院模板下载
  • 网站的创建历程怎么写可以在自己家做外卖的网站
  • 网站建设和维护要学多久自己怎样做广告链接
  • 中山精品网站建设公司仙居建设局网站
  • 东莞建设网站流程南京专业网站制作公司有哪些
  • 企业网站虚拟空间济南智能网站建设