美文网首页
iOS 多线程中 线程的执行过程和 状态

iOS 多线程中 线程的执行过程和 状态

作者: joses | 来源:发表于2019-04-01 10:26 被阅读0次

                                                                线程的基本流程

             创建线程是处于新建状态,start是就绪状态,会放入到可调度线程池里面(cpu看线程是否可以调 用,是看线程是否在可调度线程池里面),cpu调度他的时候就会进入运行状态,当这个线程的时间片用完之后,进入就绪状态。所以调用了start方法之后,线程会在运行状态和就绪状态之间进行来回的切换。当线程调用sleep方法时候会进入阻塞状态,进入阻塞状态的线程是不可以工作的,进入阻塞状态时候线程会从可调度线程池里面移除出来到内存里面。此时这个线程还存在只不过cpu不会调用他而已,当sleep时间到了之后,会又移入可调度线程池中进入就绪状态,当cpu调用的时候又会进入运行状态。// 当线程里面的任务执行完或者异常退出了之后进入死亡状态,死亡会移除可调用线程池,并且从内存释放,不会做任何事情不要想着重新启动线程。

    1.创建线程,新建状态,NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(task)object:nil];

    2.就是Start,到就绪

    3.就是CPU的调度,在线程池里面的线程

    4.中间可能有的线程的会加线程同步锁或者调用Sleep方法,这样这个线程就会从线程池里面出来,等待被唤醒后再进入线程池,CUP进行调用

    5.调用结束就会杀死线程,并释放内存

    相关文章

      网友评论

          本文标题:iOS 多线程中 线程的执行过程和 状态

          本文链接:https://www.haomeiwen.com/subject/mvymbqtx.html