iOS学习总结之多线程编程(NSThread)-线程的状态

本文介绍了在编程中如何通过三种不同的方式终止子线程:1. 线程执行体方法自然结束;2. 线程执行过程中出现错误;3. 调用NSThread类的exit方法来终止当前正在执行的线程。此外,还提供了一个具体的代码示例,展示了如何在运行过程中检查线程状态并选择性地终止线程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 终止子线程(3种方式)

 1、线程执行体方法结束 线程正常结束

 2、线程执行过程出现了错误

 3、直接调用NSThread类的exit方法来终止当前正在执行的线程

 

 子线程启动和主线程拥有相同的地位

 测试某个线程是否正在运行 可以调用线程对象的isExecuting(正在执行 返回YES)isFinished(线程执行完成 返回YES)方法


- (void)viewDidLoad {
    [super viewDidLoad];
//    创建新线程对象
    thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];
//    启动新线程
    [thread start];
    
   
}

- (void)run{
    for (int i = 0; i < 30; i ++) {
        if ([NSThread currentThread].isCancelled) {
            //终止当前正在执行的线程
            [NSThread exit];
        }
        
        NSLog(@"---%@---%i", [NSThread currentThread].name, i);
        //每一次执行 线程暂停0.5秒
        [NSThread sleepForTimeInterval:0.5];
    }
}

- (IBAction)cancelThread:(id)sender {
    //取消thread线程 调用该方法后 threaad的isCancelled方法将会返回NO
    [thread cancel];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值