关闭

多线程 ——NSThread

标签: 线程
486人阅读 评论(0) 收藏 举报
分类:
  • 先看一下线程的状态
    线程的状态

  • 学习多线程的目的:就将耗时操作放到子线程中去执行。
  • [NSThread currentThread] 获得当前方法执行的线程对象
  • 通过number来判断当前线程是主线程还是子线程
  • 提示:不要纠结这个number的值是多少
  • 只要number == 1,则代表是主线程
  • number != 1,则是子线程,这个值是由CPU决定,

  • 创建线程方法一:
- (void)threadDemo1 {
    // 创建线程 -- 仅仅是在内存中创建了一个线程对象,并没有开始执行指定方法
    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(longOperation:) object:@"alloc"];

    // 开始执行
    [thread start];
}


- (void)longOperation:(id)param{
    NSLog(@"%@---%@",param,[NSThread currentThread]);
}

  • 创建线程方法二:

- (void)threadDemo2 {
    // 创建线程
    // 默认自动开启
    [NSThread detachNewThreadSelector:@selector(longOperation:) toTarget:self withObject:@"detach"];
}

  • 创建线程方法三:
- (void)threadDemo3{
    // 隐式在后台开启线程执行指定的方法。
    // 任何 NSObject对象都可以调用该方法,在后台线程中执行对应的方法
    [self performSelectorInBackground:@selector(longOperation:) withObject:@"performSelector"];
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:284062次
    • 积分:4472
    • 等级:
    • 排名:第6611名
    • 原创:169篇
    • 转载:1篇
    • 译文:0篇
    • 评论:45条
    博客专栏
    文章分类
    最新评论