| #include <iostream> |
| #include <mutex> |
| #include <string> |
| #include <thread> |
| #include <vector> |
| |
| void spawn_thread(int index) { |
| std::string name = "I'm thread " + std::to_string(index) + " !"; |
| bool done = false; |
| std::string state = "Started execution!"; |
| while (true) { |
| if (done) // also break here |
| break; |
| } |
| |
| state = "Stopped execution!"; |
| } |
| |
| int main() { |
| constexpr size_t num_threads = 10; |
| std::vector<std::thread> threads; |
| |
| for (size_t i = 0; i < num_threads; i++) { |
| threads.push_back(std::thread(spawn_thread, i)); |
| } |
| |
| std::cout << "Spawned " << threads.size() << " threads!" << std::endl; // Break here |
| |
| for (auto &t : threads) { |
| if (t.joinable()) |
| t.join(); |
| } |
| |
| return 0; |
| } |