博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程——@synchronized(object)
阅读量:5823 次
发布时间:2019-06-18

本文共 382 字,大约阅读时间需要 1 分钟。

@synchronized 的作用是创建一个相互排斥锁,保证此时没有其他线程对self对象进行改动。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其他线程訪问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。

@synchronized(object){},每个object相应一把锁,要运行{}中的代码,首先必需要拿到object。方法a和方法b都加有@synchronized(obj1),在2个不同的线程运行先后方法a和b,当a未运行完的时候,b无法拿到obj1,所以b中@synchronized(obj1)中的代码将堵塞,直到a运行完毕,将obj1的锁释放,b拿到obj1的锁方能运行。

只是若是a或者b有一个未加@synchronized(obj1)。2个方法将能够同一时候运行

转载地址:http://ypbdx.baihongyu.com/

你可能感兴趣的文章
关于AbstractCollection
查看>>
Centos 6.5 mkisofs kickstart 制作自动安装iso镜像 光盘
查看>>
Nginx完整配置说明
查看>>
Java核心技术卷1: Java基础知识汇总
查看>>
web服务器的ddos***
查看>>
WebView使用中存在的问题
查看>>
Tomcat服务器SSL报错问题
查看>>
Python实例:毛玻璃效果
查看>>
Android开发中出现的问题及解决(一)
查看>>
6 个重构方法可帮你提升 80% 的代码质量
查看>>
陆上行舟,现在还是理想
查看>>
SaltStack安装与配置
查看>>
惰性载入函数
查看>>
一张图学会数据库迁云最佳路径
查看>>
阿里云MaxCompute被Forrester评为全球云端数据仓库领导者
查看>>
生产场景NFS共享存储优化及实战
查看>>
mysql定时备份脚本
查看>>
MYSQL之InnoDB Monitors
查看>>
oc NSDate、类的扩展 、代理(家庭-保姆)
查看>>
ASA8.4之NAT
查看>>