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

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

#线程的状态(NSThread)

新建状态

  • 创建线程
NSThread *thread = [NSThread alloc] initWithTarget:self selector:@selector(demo) withObject:nil];

就绪状态

  • 启动线程
[thread start];

运行状态

  • 方法(demo)被调用了

阻塞状态

  • sleepForTimeInterval:2.0(开发中常用,简单易于理解)
  • sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:2.0];(开发中不会用这个)
    • sleepUntilDate:[NSDate distantFuture]; //遥远的未来
    • sleepUntilDate:[NSDate distantPast];//遥远的过去
  • 注意 在哪个线程中调用sleepForTimeInterval(类方法),哪个线程就会被睡
- (void)demo{    for(int i =1 i<=20; i++)    {        NSLog(@"%i ===%@",i,[NSThread currentThread]);        if(i % 5 == 0)        {               NSLog(@"睡一会");            //告诉当前线程睡2秒            //状态:阻塞            [NSThread sleepForTimeInterval:2.0];        }        //状态:消亡        if(i = 11)        {        //强制结束线程            //[NSThread exit];//专业            return;//粗暴[NSThread exit] == return        }    }    NSLog(@"++++++打印说明没有被强制退出");}

死亡/消亡状态

  • 如果线程被强制退出了,那么后面的代码就不会执行了
  • 在哪个线程中调用[NSThread exit],那么强制结束的就是哪个线程
//强制结束线程    [NSThread exit];

转载于:https://www.cnblogs.com/KrystalNa/p/4780312.html

你可能感兴趣的文章
Geek's Collection(幂运算)
查看>>
easy bootstrap模板
查看>>
Hdu 4734-F(x) 数位dp
查看>>
DRUID连接池的实用 配置详解
查看>>
html&css精华总结
查看>>
ImportError: No module named tornado.ioloop 记录过程
查看>>
[转] SSH 密钥认证机制
查看>>
hihocoder [Offer收割]编程练习赛14 小Hi和小Ho的礼物
查看>>
JQuery EasyUI 动态改变表单项的验证守则
查看>>
Jmeter如何操作数据库
查看>>
iOS开发设置View某个角为圆角
查看>>
【python】python path,macports,easy-install,numpy,scipy,ipython,matplotlib,集成工具...
查看>>
学习进度总结
查看>>
ACCESS模糊查询出现"内存溢出"原因是日文片假名
查看>>
Error setting expression 'XXX' with value 设置表达式“XXX”时出错 解决方法
查看>>
javascript获取url参数和script标签中获取url参数
查看>>
CF359D:Pair of Numbers(数论)
查看>>
进制转换展示
查看>>
张泉灵:做投资这半年哭过的时间比前十年都多
查看>>
c++将bool变量以文字形式打印
查看>>