Does std::endl fix your multithreaded prints? (C++)

Does std::endl fix your multithreaded prints? (C++)

23.772 Lượt nghe
Does std::endl fix your multithreaded prints? (C++)
In C++, use '\n' instead of std::endl in most situations. A common myth is that one exception to this guideline is multithreading, that std::endl protects you from mangled text caused by multiple threads printing at the same time. Is this myth true? Does std::endl protect you in a multithreaded context? We investigate in this video. CONTEST CURRENTLY CLOSED! The winners: Jean Vitor, ThatCowThatGoesMoo, Alireza Ahani, Olorin, Frazzer951, Exercitus! OFFICIAL CONTEST RULES: 1. All entries must comply with the YouTube community guidelines ( http://www.youtube.com/t/community_guidelines) and YouTube Terms of Service (http://www.youtube.com/static?gl=US&template=terms). Entries that violate YouTube guidelines are automatically disqualified. 2. YouTube is not a sponsor of the contest and viewers are required to release YouTube from any liability related to the contest. 3. Privacy notice: no personal data will be collected for this contest. 4. In order to enter, you must (a) be one of my subscribers, AND (b) make a top-level comment to the video including #clion somewhere in the comment. 5. The contest is free, there is no fee required to enter. 6. Winners will be chosen randomly 1 week after the date the video went live from all users who have entered and not been disqualified. 7. Each winner will be notified via a comment reply from me that details what prize was won (e.g. "Congratulations! You have won XYZ. Please email me."). I will ask the winner to contact me by email, and I will reply through email with a random token which must be posted as another reply to the winning comment from the winning account in order to verify account ownership and prevent fraud. 8. Each winner will have 72 hours to respond AND prove account ownership or their prize is automatically forfeited and another winner will be chosen. 9. A winner can only win 1 prize per contest. 10. The prize pool for this contest is: 6 licenses for CLion ("Free 1-Year Personal Subscription"), which is a product made by JetBrains. A prize consists of 1 license, which will be delivered in the form of a redeemable code that can be redeemed at https://www.jetbrains.com/store/redeem/ before May 01, 2022. 11. You may not enter the contest if doing so would be a violation of any relevant federal, state, and local laws, rules, and regulations, including U.S. sanctions. ― mCoding with James Murphy (https://mcoding.io) Source code: https://github.com/mCodingLLC/VideosSampleCode C++ Core Guidelines: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuideline "Party Horn" sound effect by Mike Koenig: https://soundbible.com/1817-Party-Horn.html "Party Horn" license: https://creativecommons.org/licenses/by/3.0/ SUPPORT ME ⭐ --------------------------------------------------- Patreon: https://patreon.com/mCoding Paypal: https://www.paypal.com/donate/?hosted_button_id=VJY5SLZ8BJHEE Other donations: https://mcoding.io/donate Top patrons and donors: Jameson, Laura M, Dragos C, Vahnekie, John Martin, Casey G, Matt R, Johan A, Pieter G, Mutual Information, Krisztian M, Sigmanificient BE ACTIVE IN MY COMMUNITY 😄 --------------------------------------------------- Discord: https://discord.gg/Ye9yJtZQuN Github: https://github.com/mCodingLLC/ Reddit: https://www.reddit.com/r/mCoding/ Facebook: https://www.facebook.com/james.mcoding CHAPTERS --------------------------------------------------- 0:00 Intro 0:10 Reasons to avoid endl 2:28 Multithreading 4:05 Does endl fix it? 4:25 The real issue 5:12 C++20 solution 6:15 C++17 solution 6:54 C++11 solution 7:21 Design considerations