本月早些时候,我问了这个问题“什么是运行循环?” 在阅读了答案并做了一些尝试后,我让它工作了,但我仍然不完全理解它。如果runloop只是一个与线程相关联的循环并且它不会在幕后产生另一个线程,那么我的线程中的任何其他代码(为简单起见是主线程)如何执行而不会被“阻塞”/不运行因为它在某处造成了无限循环?
那是第一个问题。然后到我的第二个。
如果我在处理完这个问题后得到了一些正确的结果,但没有完全理解它,那么 runloop 是一个循环,您在其中附加“标志”,通知 runloop 当它到达标志所在的位置时,它会“停止”并且执行当时附加的任何处理程序?然后它继续运行到下一个队列。
因此,在这种情况下,连接中没有事件被放置在 que 中,但是当涉及到事件时,它会采取与 tap 1 相关的任何操作并在它再次运行到连接之前执行它,依此类推。或者我是尽我所能理解这个概念吗?