如何连接线程,如果可连接,不做其他事情
how to join thread if joinable do nothing otherwise?
我使用boost::thread join
方法等待线程完成。但是,如果我尝试join
线程时,它已经完成,我收到一个异常。那么我怎么能:
加入线程,如果活动和不做什么,如果不活动?
使用joinable()
函数检查是否需要连接:
if (thread.joinable()) thread.join();
你可以(事实上,你必须)加入一个线程,即使它已经完成,除非它被分离。连接两次,或者连接一个空线程或分离的线程是错误的。
相关文章:
- 使来自线程的数据流对所有其他线程都可读
- 视频在唤醒其他线程时输入设备断开连接
- 如何使自定义小部件中的子小部件的信号可连接?
- 提升 Websocket 并io_context可重用性,以实现连接的可重新建立性
- 连接UDP套接字,但仍然接收来自其他源的数据报
- Linux C++编程:为什么连接是.so,生成的可执行依赖库是.so.version
- C++使用其他命名空间中的符号,而不使它们可从外部访问
- 除了系统("pause")之外,是否有其他选项可以保持可执行文件打开?
- 可视C++ - 从链接器>输入>其他依赖项中排除文件
- 将头连接到链表中的其他节点
- QT按钮组和可检查的按钮:如何将切换信号与整数和布尔值连接?
- C++线程在完成执行后仍然"可连接()"?
- 如何使C枚举类型可用于其他语言
- 无法连接其他类的插槽
- C++-如何使显式导入的DLL函数可用于其他类
- 使动态初始化的变量可用于其他.cpp文件
- 将 main 中的变量值更改为可用于其他函数 (c++)
- 如何连接线程,如果可连接,不做其他事情
- c++ 11线程是可连接的,但join()会引发异常
- 头可连接连接是否可以具有争用条件?你如何绕过它