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

海洋网络网站建设郴州seo快速排名

海洋网络网站建设,郴州seo快速排名,个人网站 目的,北京优化seo2023年9月10日#xff0c;周日下午开始 2023年9月10日#xff0c;周日晚上23:35完成 虽然这篇博客我今天花了很多时间去写#xff0c;但是我对std::thread有了一个完整的认识 不过有些内容还没完善#xff0c;以后有空再更新.... 目录 头文件类的成员类型方法(construc…2023年9月10日周日下午开始 2023年9月10日周日晚上23:35完成 虽然这篇博客我今天花了很多时间去写但是我对std::thread有了一个完整的认识 不过有些内容还没完善以后有空再更新.... 目录 头文件类的成员类型方法(constructor)terminate called without an active exception是什么operationget_idjoinablejoindetachnative_handleswaphardware_concurrency 头文件 #includethread 类的成员 类型 id 线程ID公共成员类型 native_handle_type 本地句柄类型公共成员类型 方法 (constructor) 构造线程公共成员函数 (destructor) 线程析构函数公共成员函数 operator 移动赋值线程公共成员函数 get_id 获取线程ID公共成员函数 joinable 检查是否可加入公共成员函数 join 加入线程公共成员函数 detach 分离线程公共成员函数 swap 交换线程公共成员函数 native_handle 获取本地句柄公共成员函数 hardware_concurrency [static] 检测硬件并发性公共静态成员函数 (constructor) 该构造函数用来创建线程并执行传入的函数 #include iostream #includethread void func() {std::cout func executes! std::endl; }int main() {std::thread t1(func);return 0; }这里的“terminate called without an active exception”暂时不用管 terminate called without an active exception是什么 terminate called without an active exception是一个C程序运行时可能遇到的异常信息。 它表示程序在没有活动异常的情况下被终止了。 这个异常通常发生在以下情况下 程序主动调用了std::terminate()函数来终止程序的执行。这可能是因为程序遇到了无法处理的错误或异常情况。程序由于未捕获的异常而终止。当程序抛出一个未捕获的异常时如果没有其他活动的异常系统会调用std::terminate()来终止程序。程序由于某些特定的终止条件而被操作系统或其他外部因素终止。例如操作系统可能会根据内存使用情况或其他资源限制来终止程序。 operation 在C中std::thread类提供了operator运算符重载函数用于将一个线程对象赋值给另一个线程对象。使用operator可以将一个线程对象的控制转移到另一个线程对象从而实现线程的交换或转移。这意味着调用operator后原线程对象将结束执行而新线程对象将开始执行之前正在执行的代码。 get_id 该方法用来获取线程ID #include iostream #includethread void func() {std::cout func executes! std::endl; }int main() {std::thread t1(func);std::coutID of thread t1 is t1.get_id()std::endl;return 0; }可以看到线程ID为2 joinable 什么是join呢join是什么意思 在线程中join指的是等待一个线程执行完毕并返回结果后再继续执行主线程。当主线程调用子线程的join方法时主线程会阻塞并等待子线程执行完成。这样可以确保所有线程按照预期的顺序执行并且最后的结果是正确的。 那不用join会发生什么事情呢 主线程不会等待子线程完成这样有可能子线程还没执行完主线程就结束了。 #include iostream #includethread void func() {std::cout func executes! std::endl; }int main() {std::thread t1(func);std::coutID of thread t1 is t1.get_id()std::endl;if(t1.joinable())std::coutjoinable: turestd::endl;elsestd::coutjoinable: falsestd::endl;return 0; }join 上面已经说过所以不再赘述 #include iostream #includethread void func() {std::cout func executes! std::endl; }int main() {std::thread t1(func);std::coutID of thread t1 is t1.get_id()std::endl;if(t1.joinable())std::coutjoinable: turestd::endl;elsestd::coutjoinable: falsestd::endl;t1.join();return 0; }值得注意的是没有了“terminate called without an active exception” detach 什么是detach呢detach是什么意思 分离线程的主要目的是允许主线程在子线程执行一些耗时的操作时继续执行其他任务。通过分离线程主线程可以避免被阻塞从而提高程序的整体效率。 使用detach和不使用join有什么区别 目前我还没搞懂....以后弄懂了再更新 #include iostream #includethread void func() {for(int i0;i10000;i){//让线程休眠1秒std::this_thread::sleep_for(std::chrono::seconds(1));std::cout func executes! std::endl;} }int main() {std::thread t1(func);t1.detach();//让主线程给子线程足够的执行时间for(int i0;i10000;i)std::this_thread::sleep_for(std::chrono::seconds(1);return 0; }native_handle C标准库中的native_handle是一个低级接口,可以获取底层操作系统的句柄(handle)。 native_handle主要用于一些需要直接与操作系统交互的低级场景。 swap swap()函数的作用是将两个线程对象的控制转移到彼此从而实现线程的交换。这意味着调用swap()后两个线程将开始执行对方之前正在执行的代码。 #include iostream #include threadvoid threadFunction1() {// 线程1的代码for(int i0;i10000;i){//让线程休眠1秒std::this_thread::sleep_for(std::chrono::seconds(1));std::cout Thread 1 is running. std::endl;}}void threadFunction2() {// 线程2的代码for(int i0;i10000;i){//让线程休眠1秒std::this_thread::sleep_for(std::chrono::seconds(1));std::cout Thread 2 is running. std::endl;} }int main() {std::thread t1(threadFunction1); // 创建线程1std::thread t2(threadFunction2); // 创建线程2t1.swap(t2); // 交换线程1和线程2的状态t1.join(); // 等待线程1结束t2.join(); // 等待线程2结束return 0; }hardware_concurrency 在C中hardware_concurrency是一个用于确定系统上可用的处理器核心数量的函数。它返回一个整数值表示可以并行执行的最大线程数。通常hardware_concurrency()函数返回的值取决于底层操作系统和硬件平台。 #include iostream #include threadint main() {unsigned int numThreads std::thread::hardware_concurrency();std::cout Number of available processor cores: numThreads std::endl;return 0; }可以看到我的最大并行线程数是8这是由我电脑的CPU决定的。
http://www.hkea.cn/news/14381231/

相关文章:

  • 制作好的网页怎么变成网站政务网站集约化建设推进情况
  • 华久网站建设php学校网站模板
  • 学设计网站昆明设计网站建设
  • 做最好的整站模板下载网站精美动态ppt模板免费下载
  • 县城服务网站如何做出入库管理系统免费版
  • 怎样学习做网站的编程营销型网站及原因有哪些方面
  • 成都网站建设优创智汇网站开发部门工资入什么科目
  • 网站内容收费做网站需要数据库
  • 网站建设ui百度排行榜
  • 网站升级中 html优秀网页设计
  • 用rem做移动网站如何作网站
  • 最新网站开发工具怎么查网站到期时间
  • 自己做游戏的网站app开发制作哪种快
  • 网站建设费用高巩义网站推广优化
  • 大同滕佳科技网站建设网站开发学习方法
  • 网站设计的逻辑结构公司黄页是指什么意思
  • 职业教育网站建设可行性报告自己模板做网站
  • 河源建网站网上墓地 wordpress
  • 学校网站建设意义有哪些医药公司网站模板
  • 做外贸建网站需要多少钱河北建设集团石家庄分公司
  • 大一学生做的网站哪个网站平面设计做的好
  • 网站开发是做什么的win8安装wordpress500
  • 淘宝做海淘产品 网站折扣变化快重庆建设部网站
  • 高端汽车网站建设台州做网站电话
  • 英文网站公司大同网站建设推广
  • 网站建站建设费用中国建筑集团有限公司天眼查
  • 北京金港建设股份有限公司网站东道官网
  • 做谷歌网站使用什么统计代码吗建设网站过时
  • 如何下载网站模板文件在哪里网站服务器费用
  • 如何建设网站?封开网站建设公司