{"id":3309,"date":"2023-08-04T14:46:42","date_gmt":"2023-08-04T18:46:42","guid":{"rendered":"https:\/\/blog.wholetomato.com\/?p=3309"},"modified":"2025-11-17T06:56:08","modified_gmt":"2025-11-17T10:56:08","slug":"summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20","status":"publish","type":"post","link":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/","title":{"rendered":"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]"},"content":{"rendered":"<p><strong>This session has concluded<a href=\"https:\/\/youtu.be\/CpWOLeS5v_E\"> watch the replay<\/a> or download the slides below.<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">The first Summer CodeFest presentation has concluded! Whole Tomato\u2019s very own lead developer Chris Gardner lead the first session on enhancing your program&#8217;s scalability with concurrency techniques in <a href=\"https:\/\/www.wholetomato.com\/blog\/2022\/05\/24\/do-i-need-to-know-c-for-unreal-engine\/\">C++<\/a>!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We\u2019ve prepared a short introductory article about concurrency and a short history on C++ support for threads in this article so you can better understand the session.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">What is Concurrency?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Concurrency is an umbrella concept that encompasses multithreading and other techniques that are used to handle multiple tasks simultaneously. It involves managing shared resources (like variables, files, memory, etc.) to avoid race conditions and ensure thread safety.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A term that is almost synonymous with concurrency is multithreading. This is the concept of running multiple threads (smaller units of a process) within a single process. Each thread has its own stack and shares the same heap with other threads in the process. Multithreading is useful for parallelizing tasks and taking advantage of modern multi-core processors.<\/span><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?ssl=1\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3314\" data-permalink=\"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/microsoftteams-image-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?fit=821%2C443&amp;ssl=1\" data-orig-size=\"821,443\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"MicrosoftTeams-image 4\" data-image-description=\"&lt;p&gt;#image_title&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;#image_title&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?fit=300%2C162&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?fit=821%2C443&amp;ssl=1\" class=\"aligncenter wp-image-3314 size-full\" src=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?resize=821%2C443&#038;ssl=1\" alt=\"\" width=\"821\" height=\"443\" srcset=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?w=821&amp;ssl=1 821w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?resize=300%2C162&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?resize=768%2C414&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/MicrosoftTeams-image-4-e1691174739122.png?resize=360%2C194&amp;ssl=1 360w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><i><span style=\"font-weight: 400;\">With parallel processing, programs can execute tasks simultaneously instead of sequentially which cuts completion time.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">There is a difference between parallelism and concurrency, but we won\u2019t get to that here as we need to dive into concurrency in C++. If you want to learn more about the theories, you can read more about it <\/span><a href=\"https:\/\/stackoverflow.com\/questions\/1050222\/what-is-the-difference-between-concurrency-and-parallelism\/\"><span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">The benefits of concurrent processing<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The two main benefits of using concurrency is performance and division of labor. Learning how to program for multithreading may be hard to wrap your head around at first. Humans are usually sequential when it comes to executing tasks. Similarly, a single CPU core is only ever doing one task at a time, but it <\/span><i><span style=\"font-weight: 400;\">task switches <\/span><\/i><span style=\"font-weight: 400;\">extremely fast much like our brains.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With the right conceptual program, computers can employ multiple cores or even virtual threads to run tasks in parallel\u2014it does not need to fake with fast task switching. This allows your program to actually use memory and variables in such a way that two tasks can access it simultaneously.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, in processing-heavy tasks such as HD video playback, you can divide the processing labor between the video crunching and the interface. The first thread will take care of reading the disk, decoding the image and sound bytes, and finally sending the video and sound to the hardware. On the other hand, the second thread can handle the user inputs such as play\/pause, stopping, and the like. This allows your program to focus on each task with a separate \u201cbrain\u201d.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The two threads can communicate with each other only when needed so the overall experience is way more responsive (benefits the user) but is also easy to manage the program (benefits the programmer).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The difficulty in learning parallelism is often in how and when these separate threads should communicate with each other.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">(Note: Relatively, C++ is not a concurrency-oriented language because it usually relies on its innate speed to run complex tasks sequentially\u2014but that\u2019s not to say there is no use for parallelism in C++)<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Scaling programs using concurrency and multithreading in C++<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In C++ 2011, multithreading support was added to the C++ standard. This included useful components and <a href=\"https:\/\/www.wholetomato.com\/blog\/2023\/10\/31\/ensuring-code-quality-why-every-c-developer-needs-unit-tests\/\">C++ developers<\/a> were able to use concurrency without the use of environment-specific extensions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Included in the Standard library are the following tools and features:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">thread-aware memory models<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Classes for managing threads<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Managing and protecting shared data<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Synchronizing operations between threads<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Low-level atomic operations<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">To get a better understanding of how to incorporate concurrency and multithreading in your <a href=\"https:\/\/www.wholetomato.com\/blog\/2021\/03\/11\/how-to-modernize-c-code-with-visual-assist-in-five-easy-steps\/\">C++ code<\/a>, sign up for the following tutorial hosted by Whole Tomato\u2019s very own lead developer.<\/span><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?ssl=1\" target=\"_blank\" rel=\"https:\/\/www.wholetomato.com\/landing\/summer-codefest-coding-camp#register noopener\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3312\" data-permalink=\"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/16_wtsummer-codefest-individual-sessions_chris-gardner_1200x628\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=1200%2C628&amp;ssl=1\" data-orig-size=\"1200,628\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"16_WTSummer CodeFest Individual Sessions_Chris Gardner_1200x628\" data-image-description=\"&lt;p&gt;#image_title&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;#image_title&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=300%2C157&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=1024%2C536&amp;ssl=1\" class=\"aligncenter wp-image-3312 size-medium\" src=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?resize=300%2C157&#038;ssl=1\" alt=\"\" width=\"300\" height=\"157\" srcset=\"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?resize=300%2C157&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?resize=360%2C188&amp;ssl=1 360w, https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Explore modern C++20 multithreading and powerful parallelism techniques. As programs get more complex, computers get equipped with even more CPU cores. Learn to optimize applications for peak performance with real-world examples and practical insights with C++20&#8217;s new concurrency features.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><strong>This session has concluded watch the replay or download the slides below.<\/strong><\/p>\n<h2>Presentation Slide Deck<\/h2>\n<p><iframe loading=\"lazy\" src=\"https:\/\/docs.google.com\/presentation\/d\/e\/2PACX-1vQGtssFLMDnr3QhdIyEGBbx5uQUr4XfZh58caMYTfPvm1TRD4f9rbyJC_7EcKCzB73vEqX2-Otn9qyb\/embed?start=false&amp;loop=false&amp;delayms=3000\" width=\"1080\" height=\"760\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\u00ef\u00bb\u00bf<\/span><\/iframe><\/p>\n<h2><\/h2>\n<h2>Watch the Replay<\/h2>\n<p><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/CpWOLeS5v_E\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This session has concluded watch the replay or download the slides below. The first Summer CodeFest presentation has concluded! Whole Tomato\u2019s very own lead developer Chris Gardner lead the first session on enhancing your program&#8217;s&#8230;<\/p>\n","protected":false},"author":213500340,"featured_media":3312,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[672,726359896],"tags":[2426,726359920,726359921,726359922],"class_list":["post-3309","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tips-and-tricks","category-webinar-recap","tag-c","tag-concurrency","tag-multithreading","tag-parallelism"],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=1200%2C628&ssl=1","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfpLS4-Rn","aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.7.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.\" \/>\n\t<meta name=\"robots\" content=\"max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<meta name=\"author\" content=\"Tristan Soliven\"\/>\n\t<meta name=\"google-site-verification\" content=\"DtHrwoEjg0KG_fbuPSp5j_wNIf-g5hSh4EH6tZBoCIw\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.7.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Tomato Soup - Visual Assist Team Blog\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"C++20 Concurrency &amp; Scaling: CodeFest Recap\" \/>\n\t\t<meta property=\"og:description\" content=\"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-08-04T18:46:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-11-17T10:56:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/wholetomatosoftware\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@visualassist\" \/>\n\t\t<meta name=\"twitter:title\" content=\"C++20 Concurrency &amp; Scaling: CodeFest Recap\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@visualassist\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#blogposting\",\"name\":\"C++20 Concurrency & Scaling: CodeFest Recap\",\"headline\":\"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]\",\"author\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/author\\\/tristansoliven\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.wholetomato.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=1200%2C628&ssl=1\",\"width\":1200,\"height\":628,\"caption\":\"#image_title\"},\"datePublished\":\"2023-08-04T14:46:42-04:00\",\"dateModified\":\"2025-11-17T06:56:08-04:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#webpage\"},\"articleSection\":\"Tips and Tricks, Webinar Recap, c++, concurrency, multithreading, parallelism, English\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/category\\\/tips-and-tricks\\\/#listItem\",\"name\":\"Tips and Tricks\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/category\\\/tips-and-tricks\\\/#listItem\",\"position\":2,\"name\":\"Tips and Tricks\",\"item\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/category\\\/tips-and-tricks\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#listItem\",\"name\":\"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#listItem\",\"position\":3,\"name\":\"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/category\\\/tips-and-tricks\\\/#listItem\",\"name\":\"Tips and Tricks\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/#organization\",\"name\":\"Tomato Soup\",\"description\":\"Visual Assist Team Blog\",\"url\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/\",\"email\":\"info@wholetomato.com\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":0,\"maxValue\":100},\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.wholetomato.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/WT_symbol.png?fit=112%2C112&ssl=1\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#organizationLogo\",\"width\":112,\"height\":112,\"caption\":\"visual assist main tomato symbol icon\"},\"image\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/wholetomatosoftware\",\"https:\\\/\\\/twitter.com\\\/visualassist\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/Wholetomatosoftware\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/whole-tomato-software\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/author\\\/tristansoliven\\\/#author\",\"url\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/author\\\/tristansoliven\\\/\",\"name\":\"Tristan Soliven\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#webpage\",\"url\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/\",\"name\":\"C++20 Concurrency & Scaling: CodeFest Recap\",\"description\":\"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/author\\\/tristansoliven\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/author\\\/tristansoliven\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.wholetomato.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=1200%2C628&ssl=1\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#mainImage\",\"width\":1200,\"height\":628,\"caption\":\"#image_title\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\\\/#mainImage\"},\"datePublished\":\"2023-08-04T14:46:42-04:00\",\"dateModified\":\"2025-11-17T06:56:08-04:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/\",\"name\":\"Tomato Soup\",\"description\":\"Visual Assist Team Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.wholetomato.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>C++20 Concurrency &amp; Scaling: CodeFest Recap<\/title>\n\n","aioseo_head_json":{"title":"C++20 Concurrency & Scaling: CodeFest Recap","description":"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.","canonical_url":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/","robots":"max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"","webmasterTools":{"google-site-verification":"DtHrwoEjg0KG_fbuPSp5j_wNIf-g5hSh4EH6tZBoCIw","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#blogposting","name":"C++20 Concurrency & Scaling: CodeFest Recap","headline":"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]","author":{"@id":"https:\/\/www.wholetomato.com\/blog\/author\/tristansoliven\/#author"},"publisher":{"@id":"https:\/\/www.wholetomato.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=1200%2C628&ssl=1","width":1200,"height":628,"caption":"#image_title"},"datePublished":"2023-08-04T14:46:42-04:00","dateModified":"2025-11-17T06:56:08-04:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#webpage"},"isPartOf":{"@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#webpage"},"articleSection":"Tips and Tricks, Webinar Recap, c++, concurrency, multithreading, parallelism, English"},{"@type":"BreadcrumbList","@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.wholetomato.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.wholetomato.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.wholetomato.com\/blog\/category\/tips-and-tricks\/#listItem","name":"Tips and Tricks"}},{"@type":"ListItem","@id":"https:\/\/www.wholetomato.com\/blog\/category\/tips-and-tricks\/#listItem","position":2,"name":"Tips and Tricks","item":"https:\/\/www.wholetomato.com\/blog\/category\/tips-and-tricks\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#listItem","name":"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.wholetomato.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#listItem","position":3,"name":"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]","previousItem":{"@type":"ListItem","@id":"https:\/\/www.wholetomato.com\/blog\/category\/tips-and-tricks\/#listItem","name":"Tips and Tricks"}}]},{"@type":"Organization","@id":"https:\/\/www.wholetomato.com\/blog\/#organization","name":"Tomato Soup","description":"Visual Assist Team Blog","url":"https:\/\/www.wholetomato.com\/blog\/","email":"info@wholetomato.com","numberOfEmployees":{"@type":"QuantitativeValue","minValue":0,"maxValue":100},"logo":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2026\/05\/WT_symbol.png?fit=112%2C112&ssl=1","@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#organizationLogo","width":112,"height":112,"caption":"visual assist main tomato symbol icon"},"image":{"@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/wholetomatosoftware","https:\/\/twitter.com\/visualassist","https:\/\/www.youtube.com\/c\/Wholetomatosoftware","https:\/\/www.linkedin.com\/company\/whole-tomato-software"]},{"@type":"Person","@id":"https:\/\/www.wholetomato.com\/blog\/author\/tristansoliven\/#author","url":"https:\/\/www.wholetomato.com\/blog\/author\/tristansoliven\/","name":"Tristan Soliven"},{"@type":"WebPage","@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#webpage","url":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/","name":"C++20 Concurrency & Scaling: CodeFest Recap","description":"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.wholetomato.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#breadcrumblist"},"author":{"@id":"https:\/\/www.wholetomato.com\/blog\/author\/tristansoliven\/#author"},"creator":{"@id":"https:\/\/www.wholetomato.com\/blog\/author\/tristansoliven\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/www.wholetomato.com\/blog\/wp-content\/uploads\/2023\/08\/16_WTSummer-CodeFest-Individual-Sessions_Chris-Gardner_1200x628.png?fit=1200%2C628&ssl=1","@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#mainImage","width":1200,"height":628,"caption":"#image_title"},"primaryImageOfPage":{"@id":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/#mainImage"},"datePublished":"2023-08-04T14:46:42-04:00","dateModified":"2025-11-17T06:56:08-04:00"},{"@type":"WebSite","@id":"https:\/\/www.wholetomato.com\/blog\/#website","url":"https:\/\/www.wholetomato.com\/blog\/","name":"Tomato Soup","description":"Visual Assist Team Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.wholetomato.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Tomato Soup - Visual Assist Team Blog","og:type":"article","og:title":"C++20 Concurrency &amp; Scaling: CodeFest Recap","og:description":"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.","og:url":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/","article:published_time":"2023-08-04T18:46:42+00:00","article:modified_time":"2025-11-17T10:56:08+00:00","article:publisher":"https:\/\/www.facebook.com\/wholetomatosoftware","twitter:card":"summary_large_image","twitter:site":"@visualassist","twitter:title":"C++20 Concurrency &amp; Scaling: CodeFest Recap","twitter:description":"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.","twitter:creator":"@visualassist"},"aioseo_meta_data":{"post_id":"3309","title":"C++20 Concurrency &amp; Scaling: CodeFest Recap","description":"A recap of a webcast of how C++20 concurrency helps applications scale faster and run smoother using modern multithreading techniques.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"open_ai":"{\"title\":{\"suggestions\":[],\"usage\":0},\"description\":{\"suggestions\":[],\"usage\":0}}","ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2023-08-04 18:41:32","updated":"2025-11-17 11:10:38","reviewed_by":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/www.wholetomato.com\/blog\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/www.wholetomato.com\/blog\/category\/tips-and-tricks\/\" title=\"Tips and Tricks\">Tips and Tricks<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\tSummer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.wholetomato.com\/blog"},{"label":"Tips and Tricks","link":"https:\/\/www.wholetomato.com\/blog\/category\/tips-and-tricks\/"},{"label":"Summer CodeFest: Next-Level Concurrency: Enhancing Scalability with C++20 [Recap]","link":"https:\/\/www.wholetomato.com\/blog\/summer-codefest-guide-next-level-concurrency-enhancing-scalability-with-c20\/"}],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/3309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/users\/213500340"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/comments?post=3309"}],"version-history":[{"count":9,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/3309\/revisions"}],"predecessor-version":[{"id":3508,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/posts\/3309\/revisions\/3508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/media\/3312"}],"wp:attachment":[{"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/media?parent=3309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/categories?post=3309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wholetomato.com\/blog\/wp-json\/wp\/v2\/tags?post=3309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}