iOS中的多线程技之Pthread和NSThread
来源:互联网 发布:两进一出网络切换器 编辑:程序博客网 时间:2024/05/18 00:36
什么是进程?
进程是指系统中正在运行的一个应用程序?
什么是线程?
线程是指程序的一段执行序列(代码逻辑),进程的一部分。
iOS中主线程和子线程的责任分工:
主线程:显示/刷新UI界面;处理UI事件(点击事件;滚动事件;拖拽事件等)。占用内存1M;
子线程:执行一些耗时的操作,比如:下载操作。占用内存512K。
iOS中创建线程有四种方式:
1:pThread:基于C语言
pthread_t pthread;//创建pthread对象,启动一个子线程
intthreadError = pthread_create(&pthread,NULL, task, data);
参数说明:
参数1:pthread对象;参数2:线程属性,填写NULL为默认;参数3:子线程任务的名字void *(*)(void *);参数4:传递给参数3的唯一参数;
2:NSThread:基于OC语言
方法1:使用NSThread对象:由于NSThread创建的线程,创建和启动是分离的,所以一般用于自动的来指定启动时机的情况,使用频率相对较高。
第一步:创建NSThread对象
NSThread *thread = [NSThread alloc] initWithTarget:<#(id)#> selector:<#(SEL)#> object:<#(id)#>;
参数说明:参数一:指定线程对象
参数二:指定线程任务
参数三:参数二的唯一参数,如果没有,则填写nil
第二步:手动启动线程
[thread start]; //NSThread创建的线程需要手动进行启动
NSThread常用属性说明:
thread.name =@"第二线程";//自定义线程名字,默认为nil
[thread setThreadPriority:0.5];//设置线程属性(优先级),优先级(0 ~ 1)值越大,优先级越高
[NSThread sleepForTimeInterval:4];//线程延时操作
NSThread *thread = [NSThread currentThread];//获取当前线程
NSThread *thread = [NSThread mainThread];//获取主线程
[NSThread exit];//手动的退出正在执行的线程
- (BOOL)isMainThread; + (BOOL)isMainThread; //当前线程是否主线程
- (BOOL)isExecuting; //线程是否正在运行
- (BOOL)isFinished; //线程是否已结束
方法2:使用NSThread类方法detach来创建子线程,并执行子线程任务
[NSThread detachNewThreadSelector:@selector(downloadImage) toTarget:self withObject:nil];(参考上面参数说明)
- iOS中的多线程技之Pthread和NSThread
- iOS多线程之Pthread/NSthread
- iOS多线程之Pthread/NSthread
- iOS多线程之Pthread/NSthread
- iOS中多线程的实现方案之pthread和NSThread
- iOS-多线程之Pthread、NSThread实例和理解
- iOS多线程--彻底学会多线程之『pthread、NSThread』
- iOS多线程--彻底学会多线程之『pthread、NSThread』
- iOS之 多线程中的NSThread
- IOS 中的多线程网络(一)总览及pthread、NSThread
- iOS多线程之NSThread、NSOperation和GCD
- iOS多线程之NSThread
- ios多线程之NSThread
- iOS多线程之NSThread
- iOS多线程之NSThread
- iOS 多线程之NSThread
- IOS多线程之NSThread
- iOS --- 多线程之NSThread
- 晶体和晶振
- 在Ubuntu14.04下安装matlab2014a以及破解
- 提高编码效率-Live Template
- MongoDB 用时间筛选_id字段
- C语言经验
- iOS中的多线程技之Pthread和NSThread
- C#学习日记22---多重继承
- spoj1825 Free tour II 点分治
- 《MFC中读取.mat文件中任意位置的数据》
- js 回调(callback)
- spring的Aspect使用例子:
- Spark On Yarn(HDFS HA)详细配置过程
- vim安装过程中所涉及的问题及处理办法
- 网络编程 笔记(三) 套接字类型 协议设置