ios中多线程的使用

来源:互联网 发布:进口软件 增值税 编辑:程序博客网 时间:2024/05/21 13:16

ios多线程的四种方式

  • pthread 不怎么使用
  • NSThread
  • GCD
  • NSOperation

NSThread的使用

    //第一种方法    NSThread *thread=[[NSThread alloc]initWithTarget:self selector:@selector(runThread) object:nil];    //设置线程名称    [thread setName:@"thread1"];    //设置线程优先级    [thread setThreadPriority:0.2];    [thread start];    //第二种方法    [NSThread detachNewThreadSelector:@selector(runThread) toTarget:self withObject:nil];    //第三种方法    [self performSelectorInBackground:@selector(runThread) withObject:nil];    //线程睡眠    [NSThread sleepForTimeInterval:0.5];    //加锁    @synchronized (self) {    }

GCD的使用

    dispatch_sync(dispatch_get_global_queue(0, 0), ^{        //执行耗时任务        dispatch_sync(dispatch_get_main_queue(), ^{            //回到主线程更新ui        });    });    dispatch_queue_t queue=dispatch_queue_create("com.test.gcd.queue",NULL);    //第二个参数改为DISPATCH_QUEUE_CONCURRENT,代表是并发的,如果是DISPATCH_QUEUE_SERIAL,代表是串行的。    dispatch_async(queue, ^{    });