{"id":9302,"date":"2024-03-11T11:24:20","date_gmt":"2024-03-11T11:24:20","guid":{"rendered":"https:\/\/www.modernescpp.com\/?p=9302"},"modified":"2024-03-11T11:24:20","modified_gmt":"2024-03-11T11:24:20","slug":"my-next-mentoring-program-concurrency-with-modern-c-starts","status":"publish","type":"post","link":"https:\/\/www.modernescpp.com\/index.php\/my-next-mentoring-program-concurrency-with-modern-c-starts\/","title":{"rendered":"My Next Mentoring Program: &#8220;Concurrency with Modern C++&#8221; starts"},"content":{"rendered":"<p>My next mentoring program, &#8220;Concurrency with Modern C++&#8221;, starts on the 15th of March. Registration is open.<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9035 size-full\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03.png\" alt=\"\" width=\"1080\" height=\"1080\" data-alt=\"RG E Cover M3 1080x1080\" srcset=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03.png 1080w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03-300x300.png 300w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03-1030x1030.png 1030w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03-80x80.png 80w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03-768x768.png 768w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03-36x36.png 36w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03-180x180.png 180w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2024\/01\/RG_E-Cover_M4_DPAC_1080x1080_2024-01-03-705x705.png 705w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/p>\n<p>Here are more details.<\/p>\n<h2>Concurrency with Modern C++:<\/h2>\n<section class=\"av_textblock_section av-l4pg7lhd-ae8ab04a2ae7fcb7336c59b7c1f452f5\">\n<div class=\"avia_textblock\">\n<p>The mentoring program consists of 16 stations. You have to invest at least 3 hours per week for each one. This means the program takes four months, and you can integrate my program into your workday.<\/p>\n<\/div>\n<\/section>\n<section class=\"av_textblock_section av-l4nt2u7t-2fee0ed998f1649395036094c3953375\">\n<div class=\"avia_textblock\">\n<section class=\"av_textblock_section av-5k1farnw-392cab6fd6a773dbb56e1b31b3537d6a \">\n<div class=\"avia_textblock\">\n<h3>16 Stations<\/h3>\n<ol>\n<li>Introduction\n<ul>\n<li>The Contract<\/li>\n<li>Preparation<\/li>\n<\/ul>\n<\/li>\n<li>Threads\n<ul>\n<li>std::thread<\/li>\n<li>std::jthread<\/li>\n<li>Shared Data<\/li>\n<li>Mutexes<\/li>\n<li>Locks<\/li>\n<\/ul>\n<\/li>\n<li>Concurrency Challenges\n<ul>\n<li>Program Invariants<\/li>\n<li>Data Races<\/li>\n<li>Deadlocks<\/li>\n<li>False Sharing<\/li>\n<li>Lifetime Issues<\/li>\n<\/ul>\n<\/li>\n<li>Thread Details\n<ul>\n<li>Thread-Local Data<\/li>\n<li>Thread-Safe Initialization<\/li>\n<li>Synchronized Output Streams<\/li>\n<\/ul>\n<\/li>\n<li>Synchronization and Coordination\n<ul>\n<li>Condition Variables<\/li>\n<li>Semaphores<\/li>\n<li>Latches and Barriers<\/li>\n<\/ul>\n<\/li>\n<li>Cooperative Interruption\n<ul>\n<li>std::stop_source, std::stop_token, and std::stop_callback<\/li>\n<li>std::jthread<\/li>\n<li>std::condition_variable_any<\/li>\n<\/ul>\n<\/li>\n<li>Tasks\n<ul>\n<li>Promise and Futures<\/li>\n<li>std::async<\/li>\n<li>std::packaged_task<\/li>\n<li>std::promise and std::future<\/li>\n<\/ul>\n<\/li>\n<li>Coroutines\n<ul>\n<li>Characteristics<\/li>\n<li>The Framework<\/li>\n<li>Awaitables and Awaiters<\/li>\n<li>The Workflows<\/li>\n<\/ul>\n<\/li>\n<li>Coroutines\n<ul>\n<li>A Scheduler<\/li>\n<li>Producer-Consumer<\/li>\n<\/ul>\n<\/li>\n<li>Parallel Algorithms of the Standard Template Library\n<ul>\n<li>Execution Policies<\/li>\n<li>Algorithms<\/li>\n<li>Compiler Support<\/li>\n<li>Performance<\/li>\n<\/ul>\n<\/li>\n<li>Atomics\n<ul>\n<li>Introduction<\/li>\n<li>std::atomic_flag<\/li>\n<li>std::atomic<\/li>\n<li>std::atomic_ref<\/li>\n<\/ul>\n<\/li>\n<li>Synchronization and Ordering Constraints\n<ul>\n<li>Six different Memory Orderings<\/li>\n<li>Sequential Consistency<\/li>\n<li>Acquire-Release Semantics<\/li>\n<li>Acquire-Consume Semantics<\/li>\n<li>Relaxed Semantics<\/li>\n<\/ul>\n<\/li>\n<li>Case Studies\n<ul>\n<li>Calculating the Sum of a Vector<\/li>\n<li>Thread-Safe Initialization of a Singleton<\/li>\n<li>Ongoing Optimization with CppMem<\/li>\n<\/ul>\n<\/li>\n<li>Synchronization Patterns: Dealing with Mutation\n<ul>\n<li>Copied Value<\/li>\n<li>Thread-Specific Storage<\/li>\n<li>Future<\/li>\n<\/ul>\n<\/li>\n<li>Synchronization Patterns: Dealing with Sharing\n<ul>\n<li>Scoped Locking<\/li>\n<li>Strategized Locking<\/li>\n<li>Thread-Safe Interface<\/li>\n<li>Guarded Suspension<\/li>\n<\/ul>\n<\/li>\n<li>Concurrent Architecture\n<ul>\n<li>Active Object<\/li>\n<li>Monitor Object<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n<\/section>\n<\/div>\n<\/section>\n<p>&#8220;Concurrency with Modern C++&#8221; is my fourth mentoring program. Here is more information about this program, <a href=\"https:\/\/www.modernescpp.org\/concurrency-with-modern-cpp\/\">&#8220;Concurrency with Modern C++&#8221;<\/a>, and my three other mentoring programs, which you can start immediately.<\/p>\n<ul>\n<li>&#8220;<a href=\"https:\/\/www.modernescpp.org\/fundamentals-for-c-professionals\/\">Fundamentals for C++ Professionals<\/a>&#8220;<\/li>\n<li>&#8220;<a href=\"https:\/\/www.modernescpp.org\/courses\/design-patterns-and-architectural-patterns-c\/\">Design Patterns and Architectural Patterns with C++<\/a>&#8220;<\/li>\n<li>&#8220;<a href=\"https:\/\/www.modernescpp.org\/cpp20-get-the-details\/\">C++20: Get the Details<\/a>&#8220;<\/li>\n<\/ul>\n<h2>More Information?<\/h2>\n<ul>\n<li>I&#8217;m happy to answer your question:\u00a0 <span id=\"cloak9fff1a6a9320fe6db5c1cd516479eabf\"><a href=\"mailto:info@ModernesCpp.de\">info@ModernesCpp.de<\/a><\/span>.<\/li>\n<li>Modernes C++ Mentoring: <a href=\"https:\/\/www.modernescpp.org\/\">modernescpp.org<\/a>.<\/li>\n<li>&#8220;<a href=\"https:\/\/www.modernescpp.org\/concurrency-with-modern-cpp\/\">Concurrency with Modern C++<\/a>&#8220;<\/li>\n<\/ul>\n<h2><\/h2>\n<h2>Modern C++ Mentoring,<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-6403\" src=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/07\/RainerGrimmDunkelBlauSmall.jpg\" alt=\"RainerGrimmDunkelBlauSmall\" width=\"222\" height=\"67\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>My next mentoring program, &#8220;Concurrency with Modern C++&#8221;, starts on the 15th of March. Registration is open.<\/p>\n","protected":false},"author":21,"featured_media":6613,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[377],"tags":[],"class_list":["post-9302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mentoring"],"_links":{"self":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/9302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/comments?post=9302"}],"version-history":[{"count":2,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/9302\/revisions"}],"predecessor-version":[{"id":10539,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/9302\/revisions\/10539"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media\/6613"}],"wp:attachment":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media?parent=9302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/categories?post=9302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/tags?post=9302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}