title: Observer Design Pattern
body: <p>In the <em>Observer Design Pattern</em>, the subject notifies all observers by calling the <code>update()</code> operation of each observer. One way of doing this is </p>
  
  <pre><code>void notify() {
     for (observer: observers) {
        observer.update(this);
     }
  }
  </code></pre>
  
  <p>But the problem here is each observer is updated in a sequence and update operation for an observer might not be called till all the observers before it is updated. If there is an  observer that has an <em>infinite loop</em> for update then all the observer after it will never be notified. </p>
  
  <p>Question:</p>
  
  <ol>
  <li>Is there a way to get around this problem?</li>
  <li>If so what would be a good example?</li>
  </ol>