没有合适的资源?快使用搜索试试~ 我知道了~
使用std::thread::hardware_concurrency() 来获得当前系统可以真正并发的线程数量,和cpu的核心数有关。 #include #include #include #include #include #include std::mutex g_lock; template struct accumulate_block { accumulate_block() { //std::cout << 创建一个线程: << std::this_thread::get_id() << std::endl; } ~accumulate_block() {
资源详情
资源评论
资源推荐
C++并发与多线程并发与多线程-运行时选择线程数量运行时选择线程数量
使用std::thread::hardware_concurrency() 来获得当前系统可以真正并发的线程数量,和cpu的核心数有关。
#include
#include
#include
#include
#include
#include
std::mutex g_lock;
template
struct accumulate_block {
accumulate_block() {
//std::cout << "创建一个线程: " << std::this_thread::get_id() << std::endl;
}
~accumulate_block() {
std::lock_guard guard_lock(g_lock);
std::cout << "销毁一个线程: " << std::this_thread::get_id() << std::endl;
}
inline void operator()(Iterator first, Iterator end, T& result) {
result = std::accumulate(first, end, result);
}
};
template
T parallel_accumulate(Iterator first, Iterator end, T init) {
auto lenth = end - first;
if (lenth 0 ? hardware_threads : 2, max_threads);
unsigned long const block_size = lenth / num_threads;
std::vector results(num_threads);
std::vector threads(num_threads - 1);
Iterator block_begin = first;
Iterator block_end = first;
for (int i = 0; i < num_threads - 1; i++) {
std::advance(block_end, block_size);
threads[i] = std::thread(accumulate_block(), block_begin, block_end, std::ref(results[i]));
block_begin = block_end;
}
accumulate_block()(block_end, end, std::ref(results[num_threads - 1]));
weixin_38628243
- 粉丝: 1
- 资源: 908
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 51单片机学习(1)-软件keil下载
- 历届(第1-21届)希望杯数学竞赛初一试题及答案(最新整理).doc全国数学邀请赛(264页资料)
- 水滴.psd
- TokenPocket_V2.1.2_release.apk
- Apache-druid-kafka-rce.yaml
- 基于C#的ASP.NET数据库原理及应用技术课程指导平台的开发
- 基于ROS的智能车轨迹跟踪算法的仿真与设计源码运用PID跟踪算法.zip.zip
- Bug Bounty Tip - i春秋Self-XSS变废为宝的奇思妙想
- 1991-2015年全国初中化学竞赛复赛试题汇编(212页)(24年竞赛复赛真题).docx天原杯
- Apache Flink 未授权访问+远程代码执行.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0