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

中国建设银行网站个人网上银行网站页面构成要素

中国建设银行网站个人网上银行,网站页面构成要素,电子商务网站建设风格,网站建设用自助建站系统好不好目录 为什么要使用多线程 例子 代码 结果 首先要先学的库——thread库 thread的简介 thread的具体使用方法 基本变量的定义 注意#xff08;小重点#xff09; join函数的解读#xff08;重点#xff09; detach函数的解读 注意 关于vector和thread是联合使用 …目录 为什么要使用多线程 例子 代码 结果 首先要先学的库——thread库 thread的简介 thread的具体使用方法 基本变量的定义 注意小重点 join函数的解读重点 detach函数的解读 注意 关于vector和thread是联合使用 例子中代码的改良 代码 运行结果 总结 是不是少了什么 为什么要使用多线程 在我们实际处理问题中可能会遇到一些需要等待或者是需要时间去等待放回的问题 比如像网络爬虫的数据包返回亦或者程序对cpu的使用率不高导致时间和性能的浪费 同时多线程可以实现异步编程将一些耗时的操作放在后台线程执行使得主线程能够继续响应用户的其他操作提高程序的并发性。 综上所述多线程编程对于我们大部分编程语言的学习都是必须要学习的。 例子 在这里我先放一个源代码在这这是我们用原先的方法进行顺序执行 代码 #include iostream #include thread #include time.h using namespace std; void F_1(int i) {this_thread::sleep_for(chrono::seconds(i));//设定程序需要运行的时间cout The No.i is finish endl; } int main() {clock_t now_time_1 clock();//记录刚刚开始的时间cout This project is start! endl;for (int i 1; i 3; i) {F_1(i);}cout This project is ready! endl;clock_t now_time_2 clock();//记录最后结束的时间cout The cost time is now_time_2 - now_time_1 ms endl; } 其中time.h库中的clock_t以及clock()是是用来统计程序运行的时间的 this_thread::sleep_for(chrono::seconds(i))这个函数是个休眠函数为等待i秒用来模拟程序运行的时间 结果 程序运行的结果 如图程序一共运行了6000ms的时间  首先要先学的库——thread库 thread的简介 C 作为一种强大的编程语言为多线程编程提供了丰富而灵活的支持。C 的标准库提供了 thread 头文件其中包含了用于创建、启动和管理线程的类和函数。通过使用这些多线程库和功能开发人员可以轻松地引入并发性到自己的应用程序中实现多线程的并行处理。 thread的具体使用方法 基本变量的定义 thread函数中定义线程的语法规如下 std::thread 变量名 (函数传递的参数1传递的参数2传递的参数3...【如果前面加了using namespace std;可以删除std::】 注意小重点 其中如果原函数传递的参数为左值也就是int a那么传递的参数应该把原来的ab...改为ref(a),refb或者cref(a),cref(b)... 原因是thread为右值传递函数讲道理应该不能用引用也就是右值。 至于啥是左值啥是右值 简单来说就是左值是内存上有空间或者是有地址的而右值就是内存上没空间或者是只有临时地址的举个例子 int a1;//a为左值,1为右值 int ba1;//b为左值a1为右值注意 int cb;//可以因为a为左值在内存上有空间 int d10//不可以因为10为右值在内存上面没有空间 那为什么ref以及cref可以呢 ref可以包装按引用传递的值为右值。cref可以包装按const引用传递的值为右值。 他们都是经过从左值转为右值的转化的但是实际还是左值 join函数的解读重点 join函数就是等待副线程完毕才可以进行join()函数下面的部分 join函数看起来是加入有一些人包括我把它看成加入线程池其实我觉得把它换成wait其实更好一点......因为join简单来说就是堵塞主线程一直到函数运行完毕才可以进行下一步 简单来说就是这样一个图 这样看就是很完整了不然如果是运行join()才加入的话那样运行时间和上面代码没什么区别...... detach函数的解读 detach函数就是比较简单的 笼统的来说就是把它和主线程分离两人谁也不等谁但是其实主线程结束后副线程由于守护线程的结束也会停止 注意 如果你不使用或者是多次使用join或者detach两个中的一个函数程序都会报错 关于vector和thread是联合使用 代码 vector thread sum_1; sum_1.push_back(thread(F_1, 1)) 如上使用就可以了 join函数就可以这样使用 sum_1[0].join(); 例子中代码的改良 那么例子中提到的代码就可以进行修改了 代码 #include iostream #include thread #include time.h #include vector using namespace std; void F_1(int i) {this_thread::sleep_for(chrono::seconds(i));//设定程序需要运行的时间cout The No.i is finish endl;i; } int main() {clock_t now_time_1 clock();cout This project is start! endl;//记录刚刚开始的时间vector thread sum_1;for (int i 1; i 3; i) {sum_1.push_back(thread(F_1, i));}for (int i 0; i sum_1.size() - 1; i) {sum_1[i].join();}//for (int i 1; i 3; i) {// thread t(F_1, i);//}cout This project is ready! endl;//记录结束的时间clock_t now_time_2 clock();cout The cost time is now_time_2 - now_time_1 ms endl; } 代码中创建的一个容器进行装载三个线程 然后创建过程中已经一起执行了 运行结果 如图为3015ms节约的时间十分的可观 总结 在编程中多线程操作一般可以节约可观的时间并且可以对自己的程序进行一些优化 尽管现在只学了thread库但是不要担心 接下来我会按照我的学习路线依次把我的学习笔记给写下来 是不是少了什么 哦对了
http://www.dnsts.com.cn/news/206455.html

相关文章:

  • 网站建设印花税税率外发加工网站源码下载
  • 给公司做一个网站流程中药材初加工平台
  • 专门做超市海报的网站响应式网站布局实例
  • 如何介绍自己做的网站团购营销型网站制作
  • 做老师好还是网站编辑好如何推广网站网站推广常用方法
  • 刚做外贸最好用哪个网站微分销系统价格
  • 建设官方网站请示理财网站建设方案书
  • 自己做网站 什么怎么做自己的百度网站
  • 企业网站开发报价表网站开发设计合同
  • 技术网站源码wordpress东莞黄页大全
  • 网站域名改了以后新域名301电子商务门户网站的研究与实现
  • 唯品会网站建设建议关于网站开发的开题报告
  • 做淘宝客网站用什么系统吗广州物流网站建设
  • iis网站ip深圳网站建设公司排行榜
  • php网站开发职位品牌型网站建设特点
  • 如何填写网站建设计划表网站设计结构
  • 厦门网站建设手机衡水注册公司
  • 外贸网站seo推广广告设计用什么
  • 网上发布信息的网站怎么做的网站制作的收费标准
  • 做网站需要多少资金流量套餐网站
  • 从化网站建设服务阿里云网站建设模板
  • 简单 手机 网站 源码flash个人网站片头
  • 网站内容页显示不出来建设银行无锡分行招聘网站
  • 做电影网站投资多少做pc端网站策划
  • 网站建设包括内容全屋定制加盟哪个品牌好
  • 网站与网页区别是什么意思网络维护员
  • 做网站发广告周村区住房和城乡建设厅网站
  • 开发高端网站建设百度推广 网站要备案吗
  • 中国建设银银行招聘网站wordpress 图标不显示缩略图
  • iis 网站目录权限设置建设网站的情况说明