线程有join和detach两种结束方式,join:主线程等待该线程结束,detach:主线程不等待该线程结束,让其在后台运行。join需要注意选择适当的位置,在线程启动后可能会抛出异常,在try/catch中也应该考虑join(一种方式是使用“资源获取即初始化方式”(RAII,Resource Acquisition Is Initialization),并且提供一个类,在析构函数中使用join())。detach需要注意不要引用主线程的临时变量,以至于出现悬空的情况。
thread 如果新建线程的函数,需要传递引用参数,需要使用ref显示传递,否则会传递拷贝后的引用