@synchronized(self)的用法:
@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。
![1155365-f370e1683fcc0d0a.png](https://i-blog.csdnimg.cn/blog_migrate/c8a15eb900bd5d9b25e7487564e5a4b0.webp?x-image-process=image/format,png)
@synchronized.png
举一个最常见的例子,比如车站多人售票的例子,总票数100张,3个售票员售票,如果不加线程锁,会出现什么情况呢? 最后剩余1张票,三个售票员都看见了,都卖出去了,就会出现一票多卖的情况。加上线程锁之后,同时只能一个售票员(一个进程)操作,剩余一张票,看谁的操作抢先一步,谁先抢到。