对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)。两种源都使用程序的某一特定的处理例程来处理到达的事件
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)。两种源都使用程序的某一特定的处理例程来处理到达的事件
相关文章推荐
- Linux之Raid详解
- 自动化运维工具SaltStack - 分组(使用记录,groups)
- linux下的工具
- linux操作提示:“Can't open file for writing”或“operation not permitted”的解决的方法
- 【Linux运维入门】JMX方式远程监控Linux下JVM运行情况
- Nginx
- openpyxl读取大文件的若干问题
- ActiveMQ实现负载均衡+高可用部署方案【未完待续】
- 【ENVI错误】 OBJ_NEW:Error encoutered during the sparse operation
- Linux常用命令
- I.MX6 Linux、Jni ioctl 差异
- 【Linux 驱动】netfilter/iptables (一) 基础概念
- 把Nginx加为系统服务(service nginx start/stop/restart)
- CENTOS里面的配置163 mail 系统
- linux 下jdk安装
- Linux系统基础
- Hadoop运行wordcount时报classnotfound错误的一个原因
- 使用docker笔记
- Find使用详解
- cdlinux可以安装在c盘