title: Why Looper.loop() does not block the Main thread
body: <p>Looper's loop method is called inside the ActivityThread's main method and starts an infinite <code>for loop</code> which iterates over a message queue. When there is no more message in the queue then it calls <code>nativePollOnce</code> method which waits for the next message.<br/> So my questions are<br/>
  1.if it waits for next message then the main thread will be blocked then how can it enqueue more message queue.<br/>
  2.if it doesn't get blocked then it will consume the CPU cycle and others would not get a chance to add a message in the queue.<br/>Please take into consideration that MessageQueue, Handler, Looper are on main thread and UI events and input events processed by the main thread.<br/>
  Links<br>
  <a href="https://stackoverflow.com/questions/35931899/why-main-threads-looper-loop-doesnt-block-ui-thread">Why main thread&#39;s Looper.loop() doesn&#39;t block UI thread?</a><br>
  <a href="https://stackoverflow.com/questions/58851888/why-does-looper-loop-not-block-the-ui-thread">Why does Looper.loop() not block the UI thread</a><br/>
  <a href="https://stackoverflow.com/questions/38818642/android-what-is-message-queue-native-poll-once-in-android">android - what is message queue native poll once in android?</a><br><a href="https://stackoverflow.com/questions/8763594/does-an-android-looper-thread-use-processing-power">Does an Android Looper thread use processing power?</a></p>