std::thread t(charge_AGV); t.detach(); // 主线程的函数 t.join(); // 等待充电线程的完成 // 继续运行主线程的函数 return 0;
时间: 2024-04-28 09:23:47 浏览: 90
主线程等待子线程结束代码
3星 · 编辑精心推荐
这段代码中,先创建了一个名为t的线程,并将函数charge_AGV作为参数传递给它。然后使用detach()函数将线程与主线程分离,使它们可以同时执行。接下来调用了t.join()函数,这里是多余的,因为前面已经使用了detach()函数将线程与主线程分离,所以线程已经无法被连接回主线程了。因此,这里的t.join()函数不会起到任何作用,可以将其删除。
最后,继续执行主线程的函数,然后返回0。需要注意的是,如果主线程在charge_AGV函数执行完成之前就退出了,charge_AGV函数可能无法完成自己的任务。因此,在使用detach()函数分离线程时,必须确保线程可以独立地完成自己的任务,而不依赖于主线程的状态。
阅读全文