美文网首页iOS Developer
多线程同步的问题

多线程同步的问题

作者: LeeDev | 来源:发表于2017-02-09 17:31 被阅读30次

通过GCD 方式:把所有的多线程放到一个 串型队列中来跑

大概有下面几步 
1.创建一个串型队列 并且同时放到 全局队列中
NSString *identifier = @"com. identifier.serial" ;
 _queue = dispatch_queue_create([identifier UTF8String], DISPATCH_QUEUE_SERIAL);
dispatch_queue_t dQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
 //dQueue:目标队列   _queue:当前的队列是相对于dQueue
dispatch_set_target_queue(_queue, dQueue);


2.多线程同步 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
       dispatch_sync(_queue, ^{
         //同步执行 某个线程1
      });
    });

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
       dispatch_sync(_queue, ^{
         //同步执行 某个线程2
      });
    });
// 这样 线程1 和 线程2 是同步执行的

通过NSOperationQueue开发 (解决GCD 中没有 cancel 的方法)

1.初始化Queue队列 
//设置最大的执行数是1
self.maxConcurrentOperationCount = 1;
//同步执行 
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:block];
        [self addOperations:@[operation] waitUntilFinished:YES];
//取消所有的操作  cancelAllOperations

相关文章

  • OpenMP多线程——Parallel for

    多线程——线程同步 数据竞争问题 线程互斥同步——critical 线程互斥同步——atmoic 线程互斥同步——...

  • synchronized

    讲synchronized关键字时候,就不得不提一下多线程问题同步问题 多线程的同步问题:多个线程同时修改一个数据...

  • Java自学-多线程 同步synchronized

    Java 多线程同步 synchronized 多线程的同步问题指的是多个线程同时修改一个数据的时候,可能导致的问...

  • UI数据源同步

    数据源同步问题多线程对共享数据的访问,需要考虑数据源的同步问题,如何解决tableView在多线程环境下的修改或者...

  • 多线程同步问题

    多线程同步问题:对于多线程程序来说,同步是指在一定时间内只允许某一个线程访问某个资源。而在此时间内,不允许其他的线...

  • [iOS面试]第6章 多线程相关面试问题

    本文主讲多线程相关面试问题:包括GCD、NSOperation、NSThread、多线程与锁。 一、GCD 同步/...

  • 无标题文章

    多线程死锁的出现是因为多个线程进行同步的时候才会出现,所以首先要说一下多线程同步的问题,说到同步就会提到synch...

  • 多线程同步的问题

    通过GCD 方式:把所有的多线程放到一个 串型队列中来跑 通过NSOperationQueue开发 (解决GCD ...

  • JUC学习笔记三

    JUC学习笔记三 用于解决多线程同步问题的方式 隐式锁(synchronized) 同步代码块 同步方法 显式锁(...

  • 同步锁Lock

    用于解决多线程安全问题的方式:synchronized 隐式锁 同步代码块 同步方法 jdk1.5后新增 同步锁...

网友评论

    本文标题:多线程同步的问题

    本文链接:https://www.haomeiwen.com/subject/dihwittx.html