1、创建线程对象,并启动。
![](https://img.haomeiwen.com/i1938365/582421fa149cc67d.png)
运行结果:
![](https://img.haomeiwen.com/i1938365/b74b4f351d451bdc.png)
从结果可以看出来,新建的线程按照当 i=20 时创建,启动线程使用start方法,线程启动之后并不是立即进入就绪状态,线程被启动后处于就绪状态,当系统调用后,线程才会进入运行状态,所以使得主线程(UI线程)已经走到了i=21,才开始执行此线程。 也可以看出来CPU在处理两个线程的时候,并不是按照一定时间交替,有长有短。
2、终止子线程的方法
测试线程是否运行有两个方法:isExecuting(是否执行)、isFinished(是否执行结束)。
当然希望终止子线程的话,NSThread没有终止子线程的方法,而是有cancel的方法,可以向子线程发送一个信号(比如调用子线程的cancel方法),然后在子线程执行体中判断,然后用exit终止。如下图所示:
线程在执行中,点击按钮,发送cancel信号,终止(或暂停)线程。
![](https://img.haomeiwen.com/i1938365/9b7a9e396cc4e36b.png)
![](https://img.haomeiwen.com/i1938365/eb6ee48f2a60141c.png)
当线程进行到11时,按下按钮,线程结束。
网友评论