Partager via


What my dog taught me about race conditions

I have a black Labrador named Sofie. She's about 2 and a half now, but still a puppy at heart. Here's a picture of her (along with her best friend, Sierra, who is a yellow lab):

One morning, Sofie reminded me of a valuable issue with threading and race conditions.  Our morning ritual for feeding is that Sofie starts dancing out of anticipation for breakfast (literally - fellow dog owners know what I mean), which usually involves her jumping up and down and chasing her tail in circles.
I then tell her to "sit" and then "stay", which means she's supposed to be stationary and not move until I say "OK". I then proceed to get her food, fill her dish, and wait a minute to reinforce her discipline. I then say "ok" and she rushes to her food dish and enjoys the life of a dog.

So what's the lesson?
One morning we came down, and instead of dancing, she just sat down and waited. So I proceeded to fill her dish ... and then she immediately ran and ate the food. I realized that because she was already sitting, I never issued the "sit" and "stay" commands.  To be more technical: Sofie and I each represent a thread, and her being in a "sitting" state lulled me into a false sense of security where I got lazy and avoided uses the synchronization primitives. Thus she was not ordered to wait and free to eat her food at her convenience.

Comments

  • Anonymous
    August 01, 2005
    Hehe. Thats a nice story. I would have just thought that your dog managed to circumvent the norm (its a hacker at heart) :-)
  • Anonymous
    August 01, 2005
    Think what might have happened if the thread had been running with administrative rights!
  • Anonymous
    August 01, 2005
    Майк Сталл — создатель компилятора C#, написанного на C# — рассказывает о пробле
  • Anonymous
    August 01, 2005
    Can somebody translate the comment that's not in english?
  • Anonymous
    August 01, 2005
    Long live Babelfish. :-)
    Here's its translation.

    "Mayk Stull [should be Mike Stall] - creator of compiler C #, written on C # - he tells about proble"

    Seems like its a trackback.
  • Anonymous
    August 02, 2005
    Sure it's a trackback:
    http://blogs.gotdotnet.ru/personal/mihailik/PermaLink.aspx?guid=c7cb2b25-47e5-4481-a0cf-5c0fefffc27d
  • Anonymous
    August 02, 2005
    By the way, Oleg Mihailik wrote that kind of your dog is the same as Russian President Vladimir Putin's dog.

    http://www2.chinadaily.com.cn/english/doc/2005-04/06/xin_080402061649742700616.jpg
  • Anonymous
    September 12, 2006
    My 19-month old daughter was quite the finite state machine today.
    She's recently become mobile and...
  • Anonymous
    June 07, 2007
    My wife + I recently had daughter #2. I'm taking time off, and so my participation on the forums and