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

个人建设网站要钱吗中国建筑工程信息官网

个人建设网站要钱吗,中国建筑工程信息官网,做数据可视化图的网站,dw做网站的实用特效系列文章目录 文章目录 系列文章目录-进程-前言base类线程执行函数结果分析小结#xff0c;行为总结 -c11线程对象创建后既不join()也不detach()的后果-附注代码 -进程 进程是运行着的程序 进程内存空间分配#xff1a;略 如果主进程结束而子进程未结束#xff0c;则Linu…系列文章目录 文章目录 系列文章目录-进程-前言base类线程执行函数结果分析小结行为总结 -c11线程对象创建后既不join()也不detach()的后果-附注代码 -进程 进程是运行着的程序 进程内存空间分配略 如果主进程结束而子进程未结束则Linux内核会将该子进程的父进程ID改为1(init进程) -前言 void funcname(const A v); std::thread(funcname, value); // 即使函数的形参是引用类型也会发生拷贝构造 除非 void funcname(A v); std::thread(funcname, std::ref(value)); // 这样value对象就是主线程中的对象 base类 #include iostream #include threadclass Base { public:int num 1; // 类内初始化Base() { std::cout 默认构造函数Base()运行 this: this id std::this_thread::get_id() std::endl;}Base(const Base b){std::cout 拷贝构造函数Base() this: this id std::this_thread::get_id() std::endl;}~Base(){std::cout 析构函数~Base() this: this id std::this_thread::get_id() std::endl;}void operator()(int num){std::cout 运算符重载子线程执行 this: this id std::this_thread::get_id() std::endl;}void thdjob(int n); };线程执行函数 普通函数void thdjob(int n) {std::cout 子线程执行 std::this_thread::get_id() std::endl; }类的成员函数void Base::thdjob(int n){std::cout 子线程执行 std::this_thread::get_id() std::endl;}结果分析 int main() {Base b;// 在第一个参数为普通函数的情况下引用// 当第一个参数为类的成员函数时则子线程和主线程用的不是同一个对象// 若为引用或地址则为同一个对象std::thread thd(Base::thdjob, b, 4); }小结行为总结 std::thread中即使线程函数的形参是引用类型也会进行对象拷贝std::thread(…)中假定所有实参都为右值void thdjob(const Base b); // 必须是const引用并且会发生无对象拷贝的方式 引用 void thdjob(Base b);// 子线程中的对象b与主线程中的是同一个自然无对象拷贝// 需要确保子线程在使用b时主线程不会将其销毁std::thread th(thdjob, std::ref(b)); // std::ref将b变为引用类型指针 void thdjob(Base* b);// 用地址传递自然都是同一个对象std::thread th(thdjob, b);发生对象拷贝  2次拷贝主线程子线程各一次void thdjob(Base b); std::thread th(thdjob, b);发生两次对象拷贝第一次发生在主线程将b对象拷贝到th第二次发生在子线程将th中的右值对象拷贝到形参默认构造函数Base()运行 this: 0x7ffcd8b7f014 id 139770366710720 ---------- 拷贝构造函数Base() this: 0x558e2431d2c8 id 139770366710720 拷贝构造函数Base() this: 0x7f1ed29fed74 id 139770359445056 this: 0x7f1ed29fed74子线程执行1397703594450561次拷贝// 子线程发生一次对象拷贝 void thdjob(Base b); // std::ref 主线程无拷贝 std::thread th(thdjob, std::ref(b));默认构造函数Base()运行 this: 0x7ffd5c67123c id 139786634453952 ---------- 拷贝构造函数Base() this: 0x7f229c3fed74 id 139786627053120 this: 0x7f229c3fed74子线程执行139786627053120※推荐的方式※// 子线程无拷贝 void thdjob(const Base b); // 主线程进行1次对象拷贝 std::thread th(thdjob, b);默认构造函数Base()运行 this: 0x7ffd26fb3764 id 140183106712512 ---------- 拷贝构造函数Base() this: 0x563e24eee2c8 id 140183106712512 this: 0x563e24eee2c8子线程执行140183099930176解析主线程创建b的拷贝即使主线程结束也是安全的子线程引用b的拷贝当子线程结束时负责析构该对象。 -c11线程对象创建后既不join()也不detach()的后果 c11中创建对象(std::thread)后有两种状态 joinablenonjoinable线程对象通过默认构造函数构造后状态为nonjoinable; 线程对象通过有参构造函数创建后状态为join able。joinable状态的线程对象被调用join()或detach()会变为nonjoinable状态。 线程对象析构 // thread类中的析构函数定义: ~thread() {if(nonjoinable){std::terminate();} }线程对象析构时会判断线程的状态。如果线程处于join able状态时会调用terminate()函数直接令程序退出。 也就是说创建一个可运行(创建时传入线程函数)线程对象后必须对该对象进行处理要么调用join()要么调用detach()否则线程对象析构时程序将直接退出。 - 附注代码 ※推荐的方式※ void testfn(const Base b) {std::cout this b tid std::this_thread::get_id() std::endl;usleep(10000000);std::cout b.num std::endl; }void subth() {Base B;std::cout subth Base B this B tid std::this_thread::get_id() std::endl;std::thread th(testfn, B);th.detach(); }int main() {std::cout main tid: std::this_thread::get_id() std::endl;std::thread th(subth);th.detach();std::cout main sleep std::endl;while(1); }main tid: 140303695139776 main sleep 默认构造函数Base()运行 this: 0x7f9aff7fed6c id 140303688267328 subth Base B this 0x7f9aff7fed6c tid 140303688267328 拷贝构造函数Base() this: 0x7f9af8000b78 id 140303688267328 析构函数~Base() this: 0x7f9aff7fed6c id 140303688267328 this 0x7f9af8000b78 tid 140303679874624 1 析构函数~Base() this: 0x7f9af8000b78 id 140303679874624
http://www.pierceye.com/news/49579/

相关文章:

  • 网站推广免费 优帮云竞价页面网站做优化
  • 建设摩托官方网站电商网站建设电话
  • 常州做网站的公司有哪些山东省品牌专业群建设网站
  • 天津哪家网站设计公司好wordpress是哪家公司的建站程序
  • 课程网站建设 碧辉腾乐南昌手机模板建站
  • 网站备案全国合作拍照点 腾讯云下载了wordpress进不了网页
  • 做网站的颜色wordpress建官网怎样
  • 种子网站开发网站后台没有编辑器
  • 产品是做网站网站流量运营
  • 苏州建网站收费济阳网站建设
  • 口碑好的网站建设公司wordpress文章只显示摘要
  • 天津网站定制红酒手机网站模板
  • 怎样建立自己网站copyright技术支持 东莞网站建设
  • 自己建设个小网站要什么微信微网站是什么情况
  • 有专门做最佳推荐的网站wordpress 上传图片缩小
  • 游戏网站开发运营的几个思路网站及系统建设维护
  • 建立网站做家教辅导内蒙中国建设银行招聘网站
  • 企业网站php源码免费下载建站快车的优点
  • 福州网站制作外包全能网站建设完全自学手册
  • 网站广告调词平台企业官方网站建设教程
  • 网站建设专有名词网络科技有限公司网站建设
  • 能自己做谱子的网站西安品牌策划公司排名
  • 上海博道投资管理公司的网站谁做的顺德网站制作案例信息
  • 邯郸学校网站建设费用最便宜的网站建设
  • 在中筹网站上做众筹百度网站推广咨询
  • 东莞网站优化seodtcms怎么做自己网站
  • 济南单位网站建设济南网站建站
  • 济南市住房建设网站塘厦基础网站建设
  • 佛山模板网站建站电视剧在线观看免费影视网站
  • 网站备案查询创业网站建设怎么样