什么是runloop:
总字面意思看就是运行循环,其实内部就是一个do-while循环,在这个循环内部不断的处理各种事件(例如source/observe/timer),
一个线程对应一个runloop,主线程的runloop默认是打开的,子线程的runloop需要自己打开,(调用run方法)
runloop只能选择一种mode启动,如果mode中没有任何的source、observe/timer的时候,runloop会选择自动退出
自动释放池什么时候被释放
在runloop即将进入休眠的状态下被释放.
一般在使用runloop的时候会在外边加一个autoreleasePool,来释放内部的对象.
自动释放池结束的时候,会对内部的对象进行一次释放。
在开发过程中怎么使用runloop
开启一个常驻线程、让子线程进入不消亡状态,等待其他的线程发送消息
在子线程中开启一个定时器
在子线程中长期监控一些行为
可以控制定时器在哪种模式下运行 defaultMode / truackingMode
可以让某个事件在特定的模式下进行 persort select : mode:
添加oberserve 监听runloop的状态
网友评论