线程的创建和使用
线程库中创建多线程的库是thread库,基本的线程创建是使用std::thread,如果创建了线程但是没有等待线程结束就会报错,此时有两种方式,第一种使用join()方法让主线程等待子线程完成工作。第二个就是分离子线程使其单独在后台运行,方法为detach()。当整个进程结束时整个子线程的资源才会被跟着回收。
其中每个线程只能使用一次join,如果多次使用就会抛出异常,其中方法joinable()就是判断是否可以进行join或者detach()
12345678910111213141516171819202122232425262728#include <iostream>#include <thread>#include <string>void printStr(std::string str) { std::cout << str << std::endl;}int main() { // 创建线程 std::thread thread1(printSt ...