一、定义
- @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 底层: