#include #include #include void * thread_function (void *thread_marker) { int keep_going = 1; int my_value = *((int *)thread_marker); int counter = 0; while (counter < 20) { counter++; // Break here in thread body. std::this_thread::sleep_for(std::chrono::microseconds(10)); } return NULL; } int main () { std::vector threads; int thread_value = 0; int i; for (i = 0; i < 10; i++) { thread_value += 1; threads.push_back(std::thread(thread_function, &thread_value)); } for (i = 0; i < 10; i++) threads[i].join(); return 0; }