title: Why is a single threaded model used to update the UI as main thread?
body: <p>The Qt doc says,</p>
  
  <blockquote>
    <p>As mentioned, each program has one thread when it is started. This
    thread is called the "main thread" (also known as the "GUI thread" in
    Qt applications). The Qt GUI must run in this thread.</p>
  </blockquote>
  
  <p>The Android doc says,</p>
  
  <blockquote>
    <p>Like activities and the other components, services run in the main
    thread of the application process</p>
  </blockquote>
  
  <p>And iOS,</p>
  
  <blockquote>
    <p>It is strongly recommended not to update UI controls etc from a
    background thread (e.g. a timer, comms etc).  This can be the cause of
    crashes which are sometimes very hard to identify.  Instead use these
    to force code to be executed on the UI thread (which is always the
    “main” thread).</p>
  </blockquote>
  
  <p>Why does they use a single threaded model to update UI ? </p>