711
all 42 comments
sorted by: hot top controversial new old
[-] UnRelatedBurner@sh.itjust.works 75 points 7 months ago

I don't get what's supposed to be wrong here, it works on my machine

[-] anzo@programming.dev 51 points 7 months ago

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

[-] Tangent5280@lemmy.world 38 points 7 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.

[-] acockworkorange@mander.xyz 5 points 7 months ago

I’d like to play ho-pong too.

[-] doingthestuff@lemmy.world 23 points 7 months ago
[-] arandomthought@sh.itjust.works 123 points 7 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.

[-] krimson@feddit.nl 21 points 7 months ago* (last edited 7 months ago)

Apart from the fact that bubble 1 and 2 point to the wrong person.

[-] Jaccident@lemm.ee 32 points 7 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 18 points 7 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.

[-] arandomthought@sh.itjust.works 5 points 7 months ago

Yes, if you reorder only the text and not the whole bubble it's also correct. =)

[-] Zagorath@aussie.zone 11 points 7 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 9 points 7 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.

[-] expr@programming.dev 1 points 7 months ago

Umm, queueing is standard practice particularly when a task is performance intensive and needs limited resources.

Basically any programming language using any kind of asynchronous runtime is using queues in their scheduler, as well.

[-] BeigeAgenda@lemmy.ca 2 points 7 months ago

Could be I was not clear when I wrote performance, I am talking about High Performance Computing, where you want to spend all CPU cycles on solving your problem. While taking Amdal's Law into account. https://en.wikipedia.org/wiki/Amdahl%27s_law

[-] expr@programming.dev 3 points 7 months ago

Ah gotcha, fair enough. Definitely depends on the workload. If you have compute you want to dedicate to solely to a single task, have at it.

[-] jaybone@lemmy.world 1 points 7 months ago

lol your operating system is using queues and buffers with multiple threads everywhere.

[-] BeigeAgenda@lemmy.ca 1 points 7 months ago

Correct, and your point is?

[-] jaybone@lemmy.world 2 points 7 months ago

My point is you don’t need to doubt the usefulness of queues for performance.

[-] Simon@lemmy.dbzer0.com 19 points 7 months ago

Not a lot of programmers on programmerhumor these days are there?

[-] jaybone@lemmy.world 3 points 7 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.

[-] Daxtron2@startrek.website 19 points 7 months ago

You have exactly 10 seconds to get the duck out of programmerhumor

[-] eatham@aussie.zone 6 points 7 months ago
[-] CommunityLinkFixer@lemmings.world 3 points 7 months ago

Hi there! Looks like you linked to a Lemmy community using a URL instead of its name, which doesn't work well for people on different instances. Try fixing it like this: !programmerhumor@lemmy.ml

[-] femboy_bird 15 points 7 months ago

I don't think it is, the joke is a bit poorly executed, but if you look at the text, the speach bubbles were made white by hand

[-] Goldholz 20 points 7 months ago

You have NO IDEA how hard my autism hates you!

[-] Bazz@feddit.de 19 points 7 months ago* (last edited 7 months ago)

Knock knock

Race condition!

Who's there?

[-] umbrella@lemmy.ml 15 points 7 months ago* (last edited 7 months ago)

vroom vroom, race conditions 🏎️

[-] tulth@sh.itjust.works 11 points 7 months ago

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

[-] fibojoly@sh.itjust.works 3 points 7 months ago

I'm embarrassed to say I only finally got it now. After reading the joke last night. -_-;

[-] Zuberi@lemmy.dbzer0.com 10 points 7 months ago

Lol at all of the people not getting it. Why comment here at all 😅

[-] Zagorath@aussie.zone 40 points 7 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 12 points 7 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]);
    }
}
[-] Zuberi@lemmy.dbzer0.com 3 points 7 months ago

I don't see OP explaining it anywhere.

It's just threads running out of order.

Why are you all overengineering the joke this much?

[-] Zagorath@aussie.zone 9 points 7 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.

[-] Zuberi@lemmy.dbzer0.com 3 points 7 months ago

It's a meme

[-] CanadaPlus@lemmy.sdf.org 2 points 7 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.

[-] Artyom@lemm.ee 7 points 7 months ago

I'm actually an expert in multiprocessing, which is just as good

[-] alphacyberranger@sh.itjust.works 5 points 7 months ago

Just out of curiosity, can locks be used in multiprocessing?

[-] qqq@lemmy.world 4 points 7 months ago* (last edited 7 months ago)
[-] alphacyberranger@sh.itjust.works 1 points 7 months ago

Oh neat. Thanks

this post was submitted on 23 Apr 2024
711 points (100.0% liked)

Programmer Humor

32536 readers
467 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS