• adr1an
    link
    fedilink
    518 months ago

    This is the first time I enjoy a meme of this format / situation.

  • @Tangent5280@lemmy.world
    link
    fedilink
    388 months ago

    I am feeling confused with this meme. I am going to escalate this to my manager, secretly hopong he’ll tell me to do something else while he passes this on to the one dude in my team who’s worked with multithreading that one time.

  • tulth
    link
    fedilink
    118 months ago

    good one! i have to admit I didn’t get it until I was browsing the comments and then it hit me 😀

    • @arandomthought@sh.itjust.works
      link
      fedilink
      1218 months ago

      In case you are serious: It’s probably not.
      When you’re not careful with parallel processing / multithreading, you can run into something called a “race condition”, where results of parallel computations end up in the wrong order because some were finished faster than others.
      The joke here is that whoever “programmed” this commic is bad at parallel progmming and got the bubbles in the wrong order because of that.
      The image makes perfect sense if you read it in the order 3, 1, 2.

        • @Jaccident@lemm.ee
          link
          fedilink
          298 months ago

          I think that’s part of the joke too. Like the whole comic has been written out of order due to race conditions; rather than just the father represents race conditions.

          It’s one degree of humour too far though, if that’s the case, doesn’t really land.

          • @Simon@lemmy.dbzer0.com
            link
            fedilink
            178 months ago

            It definitely landed for me. The aspect of one thread coming out of a totally different routine for no reason was extra funny.

      • Zagorath
        link
        fedilink
        English
        118 months ago

        The image makes perfect sense if you read it in the order 3, 1, 2.

        OH!

        I was assuming the joke was that 1 and 3 got swapped around. Because it doesn’t really make sense for 2 to be mixed up, considering it’s from a different person entirely…

        Which meant that the joke just made no sense, because swapping 1 and 3 is just as nonsense as the original order.

      • @BeigeAgenda@lemmy.ca
        link
        fedilink
        98 months ago

        🤦🏽‍♀️ Thanks for explaining, my brain must have corrected the race condition.

        Regarding threads: I have had good experience with using thread safe queues everywhere to exchange data between threads, it’s the right tool in many cases, but I doubt queues to be useful when coding for performance.

      • @jaybone@lemmy.world
        link
        fedilink
        38 months ago

        Half of the people posting here act like they are terrified of using threads. Then someone is explaining what a race condition is and they get 100+ upvotes like they just solved world hunger.

    • Zagorath
      link
      fedilink
      English
      388 months ago

      Why comment here at all

      Because we’re programmers, and programmers are infamous for being rules-/logic-driven.

      If, as a comment below suggests, the joke is that it’s meant to be read in order 3, 1, 2, that violates the rule that race conditions typically don’t cause an entirely different program to produce the output. So if the joke is meant to be “lol we have a race condition”, bubbles should be mixed up for one person, not mixed between people.

      People don’t get the joke because the joke violates its own internal rules.

      • @qqq@lemmy.world
        link
        fedilink
        118 months ago

        It doesn’t violate any rules… Imagine both the “speaker” and the “text” are being updated by separate threads. A program that would eventually display the behavior in this meme is simple, and I’m a bit embarrassed to have written it because of this comment:

        #include <pthread.h>
        #include <stdio.h>
        
        char* speakers[] = {
            "Alice",
            "Bob"
        };
        int speaker = 0;
        
        void* change_speaker(void* arg)
        {
            (void)arg;
        
            for (;;) {
                speaker = speaker == 0 ? 1 : 0;
            }
        }
        
        char* texts[] = {
            "Hi Bob",
            "Hi Alice, what's up?",
            "Not much Bob",
        };
        int text = 0;
        
        void* change_text(void* arg)
        {
            (void)arg;
            for (;;) {
                switch (text) {
                case 0:
                    text = 1;
                    break;
                case 1:
                    text = 2;
                    break;
                case 2:
                    text = 0;
                    break;
                }
            }
        }
        
        int main(int argc, char* argv[])
        {
            pthread_t speaker_swapper, text_swapper;
        
            pthread_create(&text_swapper, NULL, change_text, NULL);
            pthread_create(&speaker_swapper, NULL, change_speaker, NULL);
            for (int i = 0; i < 3; ++i) {
                printf("%s: %s\n", speakers[speaker], texts[text]);
            }
        }
        
      • @CanadaPlus
        link
        28 months ago

        Oh, I guess that makes sense. One person asks if the other is an expert, they reply they read the for dummies book, cue comically aggressive response.

        There’s so much going on in this exchange, including two separate jokes as well as weird multi-person race conditions, that I couldn’t reverse engineer it.

        • Zagorath
          link
          fedilink
          English
          98 months ago

          Why are you all overengineering the joke this much?

          Because I’m literally an engineer?

          Honestly, this isn’t me artificially coming in and doing something weird. It’s just me trying to explain how my brain naturally interpreted it. It never occurred to me to include the left guy’s speech bubble in the race condition until I saw someone else’s comment explaining it.