#include #include #include #include #include using namespace std::literals::chrono_literals; const auto T = 250ms; void f(std::stop_token stop_token, std::string_view s) { std::ostringstream ss; ss << "[" << std::this_thread::get_id() << "]: "; for (auto i: s) if (stop_token.stop_requested()) { std::this_thread::yield(); } else { std::osyncstream(std::cout) << ss.str() << i << "\n"; std::this_thread::sleep_for(T); } } int main() { std::jthread n{f, "0123456789"}, l{f, "abcdefghij"}; std::this_thread::sleep_for(2 * T); n.request_stop(); l.join(); }