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

青海政府网站建设公司百度推广后台登录入口官网

青海政府网站建设公司,百度推广后台登录入口官网,家具网站策划书,网站开发教学视频教程主要是为Ai算法中要使用到C的多线程,这是使用C11中的多线程std::thread。 在现代数学、物理和计算机科学中,优化和加速应用程序开发在编程中非常重要,以加快计算速度。多核心CPU和GPU通过核心和晶体管的数量得到了高度发展,为当今…

主要是为Ai算法中要使用到C++的多线程,这是使用C++11中的多线程std::thread。

在现代数学、物理和计算机科学中,优化和加速应用程序开发在编程中非常重要,以加快计算速度。多核心CPU和GPU通过核心和晶体管的数量得到了高度发展,为当今的服务器和计算机提供了更多的计算能力。因此,我们可以通过使用 std::thread 在我们的应用程序中使用更多的核心和线程。我们可以使用 std::thread 类进行多线程操作,本文将解释如何使用 std::thread 以及如何用现代C++示例使用它。

人工智能、图像-视频处理、计算力学、流体动力学等需要在多线程中使用所有核心。std::thread 类是在C++11中引入的,定义在 <thread> 头文件中的一个特殊类,它属于并发支持库

让我们通过一些非常简单的例子来看看它是如何工作的。

现代C++中的 std::thread 是什么?

在现代C++中,一个并发支持库被设计来解决多线程操作中的问题。这个库包括内置的线程支持(std::thread)、原子操作(std::atomic)、互斥(std::mutex)、条件变量(std::condition_variable)等许多特性。

std::thread 类是在 <thread> 头文件中定义的一个特殊类,它允许多个函数并发执行,并代表一个单一的执行线程。

我们可以使用线程的 join() 方法等待线程完成执行。在这里,当我们调用 join 方法时,thread 对象变为 non-joinable,并且可以安全地被销毁,当线程执行完成后返回。

让我们看看我们如何在不同的函数定义中使用 std::thread

现代C++中使用 std::thread 运行函数的示例?

这里有一个非常简单的例子,它在一个单独的线程 myt 中运行 myf() 函数。

#include <thread>
void myf(int r) {double a = M_PI * r * r;
}
int main() {std::thread myt(myf, 5); // 将 myf(5) 添加到线程myt.join(); // 连接线程以等待线程执行
}

现代C++中使用 std::thread 运行类方法的示例?

这是一个 std::thread 示例,它在一个类对象 o1 中运行 myf() 函数。

#include <thread>
class Tx {
public:void myf(int r) {double a = M_PI * r * r;}
};
int main() {Tx o1;std::thread myt(&Tx::myf, &o1, 5); // 将 myf(5) 添加到线程myt.join(); // 连接线程以等待线程执行
}

这里还有另一个好例子,展示如何使用线程向量使用更多线程。

在C++中,向量(vector)是现代C++中非常灵活的数组形式。我们可以将 std::vectorstd::thread 类一起用于多线程操作。本文提供了一个非常好的例子,展示了如何结合使用 std::threadstd::vector

首先,让我们回顾一下C++中的向量和线程。

目录

  • 什么是C++中的 std::vector
  • 什么是C++中的 std::thread
  • 如何在C++多线程中使用 std::thread 与 std::vector
  • 有没有一个完整的示例,展示如何在C++中结合使用 std::thread 与 std::vector

什么是C++中的 std::vector

向量(Vectors) 是包含在现代C++的 <vector> 库中的动态数组。当向量中插入或删除成员时,它们可以自动调整大小。向量与动态数组类似,这些动态数组由容器自动管理。向量是现代C++的方式;它们的成员被放置在连续的内存存储中;因此,它们可以被调整大小,并且可以使用迭代器进行访问和遍历。可以使用以下语法定义向量:

std::vector<object type> variable_name;

我们可以声明一个整数类型的 vec 向量,如下所示。

std::vector<int> vec;

我们可以使用 push_back() 方法向这个向量添加新成员。如果您是向量的新手,你可以在官网中查找vector的应用。

什么是C++中的 std::thread

在现代C++中,一个并发支持库被设计来解决多线程操作中的问题。这个库包括内置的线程支持(std::thread)、原子操作(std::atomic)、互斥(std::mutex)、条件变量(std::condition_variable)等许多特性。

std::thread 类是在 <thread> 头文件中定义的一个特殊类,它随着C++11引入,并且它允许多个函数并发执行,并代表一个单一的执行线程。我们可以使用线程的 join() 方法等待线程完成执行。

如何在C++多线程中使用 std::thread 与 std::vector

简单地说,我们可以创建一个包含线程类类型的向量,如下所示:

std::vector<std::thread> myt; // 线程向量

现在,我们可以使用 push_back() 方法和 std::thread() 向这个线程向量添加函数,并且我们可以使用 std::threadjoin() 方法在迭代中等待每个线程完成。在这里,线程的 join() 方法等待线程完成执行。在这里,当我们调用 join 方法时,thread 对象变为 non-joinable,并且可以安全地被销毁,当线程执行完成后返回。

让我们通过一个完整的示例来看看如何结合使用 std::threadstd::vector

有没有一个完整的示例,展示如何在C++中结合使用 std::thread 与 std::vector

这里有一个完整的 std::thread 示例,使用 std::vector 在给定的 MAXN 线程中运行 myf() 函数。

#include <iostream>
#include <vector>
#include <thread>
#define MAXN 16
double areas[MAXN];void myf(int r) {areas[r] = M_PI * r * r;
}int main() {std::vector<std::thread> myt; // 线程向量for (unsigned int i = 1; i < MAXN; i++) {myt.push_back(std::thread(&myf, i)); // 向线程向量添加函数}for (auto& t : myt) {t.join(); // 连接每个线程以等待线程执行}for (unsigned int i = 0; i < MAXN; i++) {std::cout << areas[i] << ",";}system("pause");return 0;
}

在这里我们使用了 myf() 函数。请注意,您也可以使用类对象的方法、函数对象和lambda表达式。

http://www.hyszgw.com/news/9784.html

相关文章:

  • 专业做公司logo的网站百度广告投放代理商
  • 做爰全过程免费的网站视频微信指数是搜索量吗
  • 做餐厅logo用什么软件网站深圳品牌seo
  • 17网站一起做网店代发流程seo网站推广招聘
  • 荆门市网站建设网络整合营销公司
  • 学院网站建设项目宁波seo优化流程
  • 骨科医院网站模板app推广方式
  • 宝鸡网站建设公司都有哪些竞价sem托管公司
  • 招聘做网站的需要技术哪些要求营销型网站有哪些
  • ps做分享类网站效果图腾讯云域名购买
  • ASP 动态网站建设搜索引擎营销的四种方式
  • 学会网站制作要多久如何制作自己的网页链接
  • 演示网站怎么做百度云官网登录首页
  • 石家庄 做网站新闻发稿发布平台
  • 一套网站设计多少钱合肥网站seo整站优化
  • 网站建设做的人多吗百度网盘搜索引擎
  • 网站开发报价单模板郑州新闻发布
  • 做网站泰安关键词百度网盘
  • 中国制造加工网官网长沙seo霜天
  • 广州网站建设找澳捷关键词歌曲免费听
  • 网络广告营销的特性惠州优化怎么做seo
  • seo关键词快速排名seo优化诊断
  • 成都制作网站的公司简介微博推广费用
  • 五金企业网站模板关键词
  • 电商网站的建设步骤苏州整站优化
  • 建站工作室 网站建设工作室淄博网站seo
  • 哪里可以免费建设网站游戏挂机赚钱一小时20
  • 网站怎么做短信ip限定今日国际新闻摘抄十条
  • 秦皇岛网站制作电话百度关键词排名查询工具
  • 南昌做网站后台投票优化生育政策