C++怎么回避线程的生成和销毁处理
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"C++怎么回避线程的生成和销毁处理"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CP
千家信息网最后更新 2025年12月02日C++怎么回避线程的生成和销毁处理
本篇内容介绍了"C++怎么回避线程的生成和销毁处理"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
CP.41:尽量回避线程的生成和销毁处理
Reason(原因)
Thread creation is expensive.
创建线程代价高昂。
Example(示例)
void worker(Message m)
{
// process
}
void dispatcher(istream& is)
{
for (Message m; is >> m; )
run_list.push_back(new thread(worker, m));
}
代码中为每个消息生成一个线程,而且run_list很可能准备在任务结束时销毁它们。
作为改善,我们可以准备一组事先生成的工作线程来处理这些消息。
Sync_queue work;
void dispatcher(istream& is)
{
for (Message m; is >> m; )
work.put(m);
}
void worker()
{
for (Message m; m = work.get(); ) {
// process
}
}
void workers() // set up worker threads (specifically 4 worker threads)
{
joining_thread w1 {worker};
joining_thread w2 {worker};
joining_thread w3 {worker};
joining_thread w4 {worker};
} Note(注意)
If your system has a good thread pool, use it. If your system has a good message queue, use it.
如果你的系统包含一个优秀的线程池,使用它。如果你的系统包含一个优秀的消息队列,使用它。
"C++怎么回避线程的生成和销毁处理"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
线程
生成
处理
消息
C++
优秀
内容
更多
知识
系统
准备
实用
高昂
学有所成
接下来
代价
代码
任务
原因
困境
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
洛阳变压器万谦网络技术支持
网络安全月活动宣传方案
计算机网络技术股票
服务器时区设置
发包服务器租用
安徽网络技术咨询优势
仓库库存管理数据库模型
传统行业中的软件开发
计算机网络技术与应用专业排名
网络安全类手抄报简单
数据库具体是什么
系统企业安全风险数据库
三明抠喂网络技术有限公司
保障云服务器安全建议
sr650服务器管理口ip
洛阳t3财务软件开发
如何成为网络安全软件代理
软件开发劳务费税费
如何给服务器安装安全狗
科技互联网发布会视频
91助手怎么导出数据库
数据库汇总
怎么样可以做一个网络安全的讲师
怎样复制数据库文件
战地1行动模式 服务器
上海网络技术开发检测中心
sr650服务器管理口ip
密码学网络安全目录
竹山质量软件开发市场
铁路网络安全法解读