美文网首页
iOS 线程安全之@synchronized的用法

iOS 线程安全之@synchronized的用法

作者: 风冰武 | 来源:发表于2018-09-02 17:26 被阅读0次

@synchronized(self)的用法:

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

互斥锁的使用格式:

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

互斥锁的优缺点:

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

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

相关专业术语: 线程同步

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

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

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

相关文章

网友评论

      本文标题:iOS 线程安全之@synchronized的用法

      本文链接:https://www.haomeiwen.com/subject/snmmwftx.html