iOS 线程安全之@synchronized的用法

2018-09-02  本文已影响0人  风冰武

@synchronized(self)的用法:

@synchronized的作用是创建一个互斥锁, 保证此时没有其它线程对self对象进行修改. 这个是OC的一个锁定令牌, 防止self对象在同一时间内被其它线程访问, 起到线程的保护作用;

互斥锁的使用格式:

@synchronized(锁对象) { 需要锁定的代码 }
注意: 锁定一份代码只需要1把锁, 用多把锁是无效的;

互斥锁的优缺点:

优点: 能有效防止因多线程抢夺资源造成的数据安全问题
缺点: 需要消耗大量的CPU资源

互斥锁的使用前提:多条线程抢夺同一块资源

相关专业术语: 线程同步

线程同步:多条线程在同一条线上按先后顺序执行任务
互斥锁就是使用了线程同步技术

例如:一个电影院, 有三个售票员. 一场电影的总电影票数固定. 3个售票员同时售票时, 要判断是否还有余票.

原文:https://www.cnblogs.com/jukaiit/p/5570056.html

上一篇 下一篇

猜你喜欢

热点阅读