Dev:CFRunLoop

CFRunLoop and NSRunLoop are objects which represent the infinite loop associated with each thread for listening to input sources, timers, etc. and execute them when the event arrives. It is also known as event loops outside Apple.

Run loop modes
Every thread has exactly one run loop, but each run loop has multiple modes. Every input source can be added to one or more modes, and when that mode is run, only those sources will be listened.

The following are some run loop modes: