美文网首页
Swift 中的 Lock

Swift 中的 Lock

作者: fordring2008 | 来源:发表于2017-02-05 12:26 被阅读33次

// Lock

// OC 中最常用的锁是 互斥锁, 即 @synchronized

/*

@synchronized(anObj){

// 在括号内, anObj 不会被其他线程改变

}

*/

// 其实 OC 中的 @synchronized 是默认的调用了 objc_sync_enter(anObj) 和 objc_sync_exit(anObj) 这两个方法

// Swift 可以直接写成

func myMethod(anObj: AnyObject!){

objc_sync_enter(anObj)

// 在 enter 和 exit 之间  anObj 不会被其他线程改变

objc_sync_exit(anObj)

}

// 更简单一点,定义一个方法,默认 OC 中

func synchronized(_ lock: AnyObject, closure:()->()){

objc_sync_enter(lock)

closure()

objc_sync_exit(lock)

}

// 使用的时候如下

func myMethodLocked(anObj: AnyObject!){

synchronized(anObj) {

// 括号内 anObj 不会被其他线程改变

}

}

相关文章

  • Swift 中的 Lock

    // Lock // OC 中最常用的锁是 互斥锁, 即 @synchronized /* @synchroniz...

  • Swift Lock

    并发,是编程当中一定会遇到的事情,那么并发所带来的不安全的访问随之而来,所以我们需要让这些访问顺序进行,以保证在不...

  • Swift Lock

  • MySQL中的锁(InnoDB存储引擎)

    MySQL中的锁(lock) lock对象:数据库中的对象,如表、页、行。lock释放:事务commit或者rol...

  • Swift -tips-- lock

    objC中的@synchronized方法在Swift中做的事情是条用了objc_sync中的objc_sync_...

  • [Swift 必备 Tips] LOCK

    转自原文链接 无并发,不编码。而只要一说到多线程或者并发的代码,我们可能就很难绕开对于锁的讨论。简单来说,为了在不...

  • java concurrency <读写锁>

    java concurrency <读写锁> 背景 读/写锁比Lock中的Lock所示的Lock实现更复杂。 想象...

  • Lock和 Condition

    Lock 必须要在 finally 中释放锁,在 Lock.lock( )和 Look.unlock( )边界。配...

  • Java 多线程(六):ReentrantLock 与 Cond

    ReentrantLock java.util.concurrent.lock 中的 Lock 是锁的顶层接口,它...

  • python threading.Lock

    一.介绍threading模块中的Lock类,Lock类中包含的方法:1.acquire(blocking=Tru...

网友评论

      本文标题:Swift 中的 Lock

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