thread joinable

2024-06-23 09:08
文章标签 thread joinable

本文主要是介绍thread joinable,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

bool jionable() const noexcept;

用于检测线程是否joinable

joinable : 代表该线程是可执行线程。

not-joinable :通常一下几种情况会导致线程成为not-joinable

     1) 由thread的缺省构造函数构造而成(thread()没有参数)。

     2) 该thread被move过(包括move构造和move赋值)

     3) 该线程调用过join或者detach



代码示例

// example for thread::joinable
#include <iostream>       // std::cout
#include <thread>         // std::threadvoid mythread() 
{// do stuff...
}int main() 
{std::thread foo;std::thread bar(mythread);std::cout << "Joinable after construction:\n" << std::boolalpha;std::cout << "foo: " << foo.joinable() << '\n';std::cout << "bar: " << bar.joinable() << '\n';if (foo.joinable()) foo.join();if (bar.joinable()) bar.join();std::cout << "Joinable after joining:\n" << std::boolalpha;std::cout << "foo: " << foo.joinable() << '\n';std::cout << "bar: " << bar.joinable() << '\n';return 0;
}

输出结果

Joinable after construction:
foo: false
bar: true
Joinable after joining:
foo: false
bar: false


这篇关于thread joinable的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086721

相关文章

jmeter之Thread Group(线程组)

Thread Group(线程组) 1.线程组,或者可以叫用户组,进行性能测试时的用户资源池。 2.是任何一个测试计划执行的开始点。 3.上一篇提到的“控制器”和“HTTP请求”(采集器)必须在线程组内;监听器等其他组件,可以直接放在测试计划下。 线程组设置参数的意义 我们以下图为例,进行详细说明。见下图:  区域1(在取样器错误后要执行的动作) 这个区域的主要作用很明显,在线程内

Exception processing async thread queue Exception processing async thread queue

错误信息描述: eclipse 在debug中弹出异常信息框 Exception processing async thread queue Exception processing async thread queue 解决方法: eclipse 中有一个Expressions窗口,里面添加的 expression 没有正确执行,并且没有删除,只要 Remove All Expressio

no thread-bound request found:are you referring to request

问题描述: 通过webservice接口调用程序时,发现在执行查询的时候一直报一个错误,错误信息如下: java.lang.IllegalStateExceptino:No thread-bound request found:are you referring to request attributes outside of an actual web request,or processi

FFplay源码分析-video_thread

《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 上一篇文章已经讲解完了 audio_thread() 音频解码

FFplay源码分析-read_thread

《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 如下图所示,本文主要讲解 read_thread() 函数的内

「生信Debug」OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable

BLAS(Basic Linear Algebra Subprograms),翻译为基础线性代数子程序库,里面拥有大量已经编写好的关于线性代数运算的程序。OpenBLAS是其中一个实现了相关运算的开源程序库,其他软件在开发的时候就不需要额外造轮子,直接调用相关的API即可。 之前在使用OrthoFinder遇到了类似的问题,见https://github.com/davidemms/OrthoF

std :: this_thread

this_thread 包装了一组可以访问当前线程信息的函数 functions 1、get_id()      获取当前线程的id。 // thread::get_id / this_thread::get_id#include <iostream> // std::cout#include <thread> // std::thread, std

std :: thread

头文件<thread>中包含两个类,thread和this_thread 在讲thread之前,首先要了解线程的一个状态:joinable 一个正规初始化后的线程是一个可执行线程,这种线程joinable为true,并且有一个独一无二的线程id。 相反,一个默认构造函数构造出的thread(thread(),没有参数,未初始化),joinable为false,且线程id通常和其他所有的non

Java面试题:对比继承Thread类和实现Runnable接口两种创建线程的方法,以及它们的优缺点

Java 中创建线程有两种主要的方法:继承 Thread 类和实现 Runnable 接口。下面我将分别介绍这两种方法,并对比它们的优缺点。 继承 Thread 类 方法: 创建一个继承自 Thread 的子类。重写 Thread 类的 run 方法。创建子类的实例并调用 start 方法启动线程。 优点: 简单易用,直接继承 Thread 类即可。可以方便地访问 Thread 类提供的

java中Thread中线程函数的解析

线程中断 线程中断涉及到三个方法,如下: voidinterrupt()           中断线程。static booleaninterrupted()           测试当前线程是否已经中断。booleanisInterrupted()           测试线程是否已经中断。 public class InterruptTest {       public