this a test 2
https://www.modernescpp.com/index.php/multithreading-in-c-17-and-c-20/
The evolution of multithreading support from C++11 through C++20 is outlined, beginning with the introduction of a well‑defined memory model and a standardized threading API that includes threads, tasks, thread‑local storage, and condition variables. C++14 contributes only reader‑writer locks, while C++17 adds parallel execution policies to most STL algorithms, enabling sequential, parallel, or parallel‑vectorized operation via std::execution. C++20 introduces several major enhancements: atomic smart pointers for safe shared‑object access, composable futures with then/when_any/when_all, and synchronization primitives such as latches, barriers, and flexible barriers. Coroutines are presented as resumable functions suitable for cooperative multitasking and generator‑style pipelines.