zoukankan      html  css  js  c++  java
  • iOS多线程开发小demo3,线程的状态

    //  Created by dyf on 14-6-23.
    //  Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.
    //
    
    #import "DYFViewController.h"
    
    @interface DYFViewController ()
    @property (nonatomic, strong) NSThread *thread;
    @end
    
    @implementation DYFViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    	// Do any additional setup after loading the view, typically from a nib.
        
        self.thread = [[NSThread alloc] initWithTarget:self selector:@selector(test) object:@"111"];
        self.thread.name = @"1111111111";
    }
    
    - (void)test {
        //
        NSLog(@"startedtest------%@", [[NSThread currentThread] name]);
        
    //    // 阻塞状态2
    //    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:5.0];
    //    [NSThread sleepUntilDate:date];
        
    //    // 阻塞状态1
    //    [NSThread sleepForTimeInterval:5.0];
        
        for (int i = 0; i < 999; i++) {
            NSLog(@"test-----%d------%@", i, [[NSThread currentThread] name]);
            
            if (i == 50) {
                [NSThread exit];
            }
        }
        
        NSLog(@"endedtest------%@", [[NSThread currentThread] name]);
    
    }
    
    #warning 点击2次屏幕会出现 'NSInvalidArgumentException', reason: '*** -[NSThread start]: attempt to start the thread again',调用已经死的线程会报错
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        // 开启线程
        [self.thread start];
    }
    
    
    @end
    

     小结:线程的状态大概有5种

    新建 就绪  运行  阻塞  死亡

  • 相关阅读:
    DeepL 人工智能翻译降临 deepl.com
    Node.js ESM(ECMAScript Modules)
    解决Ubuntu 20.04 LTS无法输入中文的问题
    实现pdnsd
    颜色
    Ubuntu 20.04 LTS
    JSX 空的根元素
    如何理解TypeScript接口​​中的语法[key: string]以及[key: number]
    React-Router-DOM
    video转canvas, 并截图
  • 原文地址:https://www.cnblogs.com/dyf520/p/3805305.html
Copyright © 2011-2022 走看看