美文网首页
第四十一条: 多用派发队列,少用同步锁

第四十一条: 多用派发队列,少用同步锁

作者: iOS博仔 | 来源:发表于2021-12-07 20:11 被阅读0次

        在Objective-C中,如果有多个线程要执行同一份代码,那么有时可能会出问题。这种情况下,通常要使用锁来实现某种同步机制。在GCD出现之前,有两种办法,第一种是采用内置的"同步块"(synchronization block):

    - (void)synchronizedMethod{
      @synchronized(self){
        //Safe
      }
    }
    

        这种写法会根据给定的对象,自动创建一个锁,并等待块中的代码执行完毕。执行到这段代码结尾处,锁就释放了。在本例中,同步行为所针对的对象是self。这么写通常没错,因为它可以保证每个对象实例都能不受干扰地运行其synchronizedMethod方法。

    相关文章

      网友评论

          本文标题:第四十一条: 多用派发队列,少用同步锁

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