# 7 并发api

- [条款35 优先考虑基于任务的编程而非基于线程的编程](/effective_modern_c++/7_the_concurrency_api/35_prefer_task-based_programming_to_thread-based.md)
- [条款36 如果有异步的必要请指定std::async::launch](/effective_modern_c++/7_the_concurrency_api/36_specify_std_async_launch_if_asynchronicity_if_essential.md)
- [条款37 使std::thread在所有路径最后都不可结合](/effective_modern_c++/7_the_concurrency_api/37_make_std_threads_unjoinable_on_all_paths.md)
- [条款38 关注不同线程句柄的析构行为](/effective_modern_c++/7_the_concurrency_api/38_be_aware_of_varying_thread_handle_destructor_behavior.md)
- [条款39 对于一次性事件通信考虑使用void的futures](/effective_modern_c++/7_the_concurrency_api/39_consider_void_futures_for_one-shot.md)
- [条款40 对于并发使用std::atomic，对于特殊内存使用volatile](/effective_modern_c++/7_the_concurrency_api/40_use_std_atomic_for_concurrency.md)
