多线程七:线程同步 - @synchronized

一、定义

  • @synchronized是对mutex递归锁的封装
  • @synchronized(obj)内部会生成obj对应的递归锁,然后进行加锁、解锁操作
  • @synchronized 没有智能提示,因为苹果不推荐使用。

注: 源码查看:objc4中的objc-sync.mm文件

二、断点看 底层

    @synchronized([self class]) { // objc_sync_enter
        [super __saveMoney];
    } // objc_sync_exit
  • @synchronized([self class]) 在底层 相当于 :objc_sync_enter
  • 大括号结束 – 在底层相当于 objc_sync_exit

objc_sync_enter 和 objc_sync_exit 的含义
参考 runtime 底层:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/M316625387/article/details/84099918