====Exemples==== * En version lambda : #include #include int main() { std::thread t([](){ std::this_thread::sleep_for(std::chrono::seconds(1)); std::cout << "thread function\n"; }); std::this_thread::sleep_for(std::chrono::seconds(2)); std::cout << "main thread\n"; t.join(); return 0; } * Avec un timeout avec ''std::jthread'' : #include #include int main() { std::jthread t([](std::stop_token tt){ while (!tt.stop_requested()) { std::this_thread::sleep_for(std::chrono::milliseconds(500)); std::cout << "thread function\n"; } }); std::this_thread::sleep_for(std::chrono::seconds(2)); std::cout << "main thread\n"; t.request_stop(); t.join(); return 0; } ====Bugs==== ===‘sleep_for’ is not a member of ‘std::this_thread’=== Erreur valable pour les versions de GCC 4.6 et 4.7. Ajouter le define ''-D_GLIBCXX_USE_NANOSLEEP'' directement dans l'option de compilation de GCC. C'est mieux que de faire un ''#define _GLIBCXX_USE_NANOSLEEP'' avant le ''#include ''. [[https://stackoverflow.com/questions/4438084/stdthis-threadsleep-for-and-gcc|std::this_thread::sleep_for() and GCC]] {{ lang:cpp:thread:c_-_std_this_thread_sleep_for_and_gcc_-_stack_overflow_2020-02-05_22_01_32_.html |Archive du 14/12/2010 le 05/02/2020}}