您的位置:首页 > 运维架构

对NSRunLoop的了解

2015-12-20 13:58 190 查看
1.runloop也就是圆形线程,不断的循环

2.run loop和线程是紧密相连的,可以这样说run loop是为了线程而生,没有线程,它就没有存在的必要。Run loops是线程的基础架构部分,Cocoa和CoreFundation都提供了run loop对象方便配置和管理线程的run loop

3.主线程的runloop是默认启动的,但对于别的线程来说runloop时默认不启动的,如果需要多线程来完成某个任务的话可以人为的来启动它

4.Cocoa中的NSRunLoop类并不是线程安全的,我们不能在一个线程中去操作另外一个线程的run
loop对象,那很可能会造成意想不到的后果。不过幸运的是CoreFundation中的不透明类CFRunLoopRef是线程安全的,而且两种类型的run loop完全可以混合使用。Cocoa中的NSRunLoop类可以通过实例方法:

- (CFRunLoopRef)getCFRunLoop;

获取对应的CFRunLoopRef类,来达到线程安全的目

5.runloop 可以让你的程序在有工作的时候工作在没有工作的时候休眠,这可以大大节省系统的资源

6.Run loop接收输入事件来自两种不同的来源:输入源(input source)和定时源(timer source)。两种源都使用程序的某一特定的处理例程来处理到达的事件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: