iOS 线程安全之@synchronized的用法
2018-09-02 本文已影响0人
风冰武
@synchronized(self)的用法:
@synchronized的作用是创建一个互斥锁, 保证此时没有其它线程对self对象进行修改. 这个是OC的一个锁定令牌, 防止self对象在同一时间内被其它线程访问, 起到线程的保护作用;
互斥锁的使用格式:
@synchronized(锁对象) { 需要锁定的代码 }
注意: 锁定一份代码只需要1把锁, 用多把锁是无效的;
互斥锁的优缺点:
优点: 能有效防止因多线程抢夺资源造成的数据安全问题
缺点: 需要消耗大量的CPU资源
互斥锁的使用前提:多条线程抢夺同一块资源
相关专业术语: 线程同步
线程同步:多条线程在同一条线上按先后顺序执行任务
互斥锁就是使用了线程同步技术