博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程(一)NSThread
阅读量:4322 次
发布时间:2019-06-06

本文共 1427 字,大约阅读时间需要 4 分钟。

iOS中多线程的实现方案:

技术 语言 线程生命周期 使用频率
pthread C 程序员自行管理 几乎不用
NSthread OC 程序员自行管理 偶尔使用
GCD C 自动管理 经常使用
NSOperation OC 自动管理 经常使用

线程的状态

 

NSThread的创建方式

//创建线程方式一    NSThread *threadOne = [[NSThread alloc] initWithTarget:self selector:@selector(testAction) object:nil];    //给线程命名    threadOne.name = @"threadOne";    //启动线程,在新开的线程执行testAction方法    [threadOne start];       //创建线程方式二,并且会自动启动    [NSThread detachNewThreadSelector:@selector(testAction) toTarget:self withObject:nil];        //创建线程方式三,隐式创建方式,自动启动    [self performSelectorInBackground:@selector(testAction) withObject:nil];

 调用的方法

- (void)testAction{    for (int i = 0; i < 3; i++)    {        NSLog(@"i = %d,当前线程 = %@",i,[NSThread currentThread]);    }}

结果:可以看到有3条线程并发执行

 

线程的属性:

//创建一个线程    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(testAction) object:nil];    //线程名字    thread.name = @"wl";    //线程优先级,一般情况不设置,默认0.5,数值范围0-1,数值越大优先级越高    thread.threadPriority = 0.5;

 

常用方法,这些都是类方法,相对于这段代码所在的线程进行操作

//获得主线程    [NSThread mainThread];    //判断是否为主线程,返回一个BOOL值    BOOL isMainThread = [NSThread isMainThread];    //判断是否为多线程,返回一个BOOL值    BOOL isMultiThreaded = [NSThread isMultiThreaded];    //把线程从可调度线程池中移除2s(阻塞线程)    [NSThread sleepForTimeInterval:2];    //把线程从可调度线程池中移除直到一个时间点(阻塞线程)    [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]];    //停止线程,线程死亡,这个线程就已经不存在了    [NSThread exit];

 

转载于:https://www.cnblogs.com/wlll/p/5174987.html

你可能感兴趣的文章
MTK android 设置里 "关于手机" 信息参数修改
查看>>
单变量微积分笔记6——线性近似和二阶近似
查看>>
补几天前的读书笔记
查看>>
HDU 1829/POJ 2492 A Bug's Life
查看>>
CKplayer:视频推荐和分享插件设置
查看>>
CentOS系统将UTC时间修改为CST时间
查看>>
redis常见面试题
查看>>
导航控制器的出栈
查看>>
玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]
查看>>
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
查看>>
Delphi消息小记
查看>>
HNOI2016
查看>>
JVM介绍
查看>>
将PHP数组输出为HTML表格
查看>>
Java中的线程Thread方法之---suspend()和resume() 分类: ...
查看>>
经典排序算法回顾:选择排序,快速排序
查看>>
BZOJ2213 [Poi2011]Difference 【乱搞】
查看>>
c# 对加密的MP4文件进行解密
查看>>
AOP面向切面编程C#实例
查看>>
Win form碎知识点
查看>>