title: When is multi-threading not a good idea?
body: <p>I was recently working on an application that sent and received messages over Ethernet and  Serial.  I was then tasked to <strong>add</strong> the monitoring of DIO discretes.  I throught, </p>
  
  <blockquote>
    <p>"No reason to interrupt the main
    thread which is involved in message
    processing, I'll just create
    <strong><em>another thread</em></strong> that monitors DIO."</p>
  </blockquote>
  
  <p>This decision, however, proved to be <strong>poor</strong>.  Sometimes the main thread would be interrupted between a Send and a Receive serial message.  This interruption would disrupt the timing and alas, messages would be lost (forever).  </p>
  
  <p>I found another way to monitor the DIO <em>without using another thread</em> and Ethernet and Serial communication were restored to their correct functionality.</p>
  
  <p>The whole fiasco, however, got me thinking. <strong>Are their any general guidelines about when <em>not</em> to use multiple-threads and/or does anyone have anymore examples of situations when using multiple-threads is not a good idea?</strong></p>
  
  <p>**EDIT:Based on your comments and after scowering the internet for information, I have composed a blog post entitled <a href="http://www.codingwithoutcomments.com/2008/09/21/when-is-multi-threading-not-a-good-idea/" rel="noreferrer">When is multi-threading not a good idea?</a></p>