在类中定义了三个线程,如std::thread thread_get_img;定义新对象时,这三个线程就会启动吗
时间: 2024-01-15 21:05:17 浏览: 30
在类中定义的线程对象并不会在对象创建的时候自动启动。定义一个线程对象只是为了在需要的时候创建和管理线程。要启动线程,需要调用线程对象的 `std::thread::start()` 方法或者使用其他方式将线程函数与线程对象关联起来。
在你提供的代码中,`std::thread thread_get_img;` 只是声明了一个线程对象 `thread_get_img`,但并没有启动线程。你需要在适当的地方调用 `thread_get_img.start()` 或者使用类似的方式来启动线程。具体的启动时机和方式需要根据实际情况来确定。
相关问题
在类函数定义中运用thread_get_img = std::thread(get_img_task, this);该线程开始了吗
在调用 `thread_get_img = std::thread(get_img_task, this);` 这一语句时,线程会被创建并开始执行。
`std::thread(get_img_task, this)` 创建了一个新的线程,并将 `get_img_task` 函数作为线程的入口点,并将当前对象的指针 `this` 作为参数传递给 `get_img_task` 函数。
当执行这条语句时,新的线程会启动,并开始执行 `get_img_task` 函数。这个线程会在后台运行,而不会阻塞主线程的执行。因此,可以认为线程已经开始了执行。
thread_get_img = std::thread(get_img_task, this);是什么意思
在这个语句中,`std::thread` 是 C++ 标准库中的一个类,用于创建并管理线程。`get_img_task` 是一个函数,被用作线程的入口点。`this` 是当前对象的指针,它被传递给 `get_img_task` 函数作为参数。
这句代码的作用是创建一个新的线程,将 `get_img_task` 函数作为线程的入口点,并将当前对象的指针作为参数传递给 `get_img_task` 函数。通过创建线程,可以并发地执行 `get_img_task` 函数,而不会阻塞主线程的执行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)