zoukankan      html  css  js  c++  java
  • detach大坑

    使用detach()函数,让主线程和子线程分开运行,即使主线程运行完了,也就是这个进程已经结束了,而子线程还在继续运行,它将会交由操作系统托管,这将会导致很多的问题。

    如果使用detach():

    1.如果线程传参数传递int这种简单的类型,不要传递引用,亲测编译器会报错。

    2.如果传递的是一个类对象,不要让编译器进行隐式类型转换,在创建线程的同时就构建出来一个临时对象,并且在函数声明的时候使用引用来接收,否则会右调用一次拷贝构造函数,再重新创建一个对象。

    3.创建线程的时候使用了一个临时变量,在主线程结束的之后,临时变量所占用的内存已经被回收了,这是子线程再去使用这一片已经被系统回收的内存,就会造成内存泄漏的危险行为。

    so:能用join就不要用detach。

  • 相关阅读:
    C++ 归纳复习常规篇
    小技巧:linux启动nginx服务异常 systemctl daemon-reload
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    Migration in EF 6 Code-First
    国外.net资源学习网站
  • 原文地址:https://www.cnblogs.com/leoncumt/p/10505754.html
Copyright © 2011-2022 走看看