线程NSThread

1、创建线程对象,并启动。

线程NSThread_第1张图片
屏幕快照 2016-09-12 21.48.27.png

运行结果:

线程NSThread_第2张图片
屏幕快照 2016-09-12 21.43.34.png

从结果可以看出来,新建的线程按照当 i=20 时创建,启动线程使用start方法,线程启动之后并不是立即进入就绪状态,线程被启动后处于就绪状态,当系统调用后,线程才会进入运行状态,所以使得主线程(UI线程)已经走到了i=21,才开始执行此线程。 也可以看出来CPU在处理两个线程的时候,并不是按照一定时间交替,有长有短。

2、终止子线程的方法
测试线程是否运行有两个方法:isExecuting(是否执行)、isFinished(是否执行结束)。
当然希望终止子线程的话,NSThread没有终止子线程的方法,而是有cancel的方法,可以向子线程发送一个信号(比如调用子线程的cancel方法),然后在子线程执行体中判断,然后用exit终止。如下图所示:

线程在执行中,点击按钮,发送cancel信号,终止(或暂停)线程。

线程NSThread_第3张图片
屏幕快照 2016-09-26 16.16.24.png
线程NSThread_第4张图片
屏幕快照 2016-09-27 16.56.32.png

当线程进行到11时,按下按钮,线程结束。

你可能感兴趣的:(线程NSThread)