std::thread用法
时间: 2023-11-23 14:53:14 浏览: 69
std::thread是C++11中的一个多线程库,用于创建和管理线程。它可以接受一个函数和参数,创建一个新线程并在新线程中执行该函数。以下是std::thread的一些用法:
1. 创建一个新线程并在其中执行函数some_function():
std::thread f(){void some_function();return std::thread(some_function);}
2. 创建一个新线程并在其中执行函数some_other_function(int),并将参数42传递给该函数:
std::thread g(){void some_other_function(int);std::thread t(some_other_function,42);return t;}
3. 创建一个新线程并在其中执行函数update_data_for_widget(w,std::ref(data)),并将data作为引用传递给该函数:
std::thread t(update_data_for_widget,w,std::ref(data));
4. 创建一个新线程并在其中执行函数do_background_work(),并将该线程分离:
std::thread t(do_background_work);t.detach();assert(!t.joinable());
需要注意的是,当一个线程被创建时,它会自动开始执行。如果需要等待线程执行完毕,可以使用join()函数。如果不需要等待线程执行完毕,可以使用detach()函数将线程分离。
阅读全文