美文网首页
关于@synchronized(self)的用法 

关于@synchronized(self)的用法 

作者: JamesYi | 来源:发表于2016-06-27 10:57 被阅读816次

1 synchronized原理

synchronized关键字编译后会在同步块的前后添加上montorenter和monitorexit两个字节码指令,这两个字节码指令 都需要一个指向锁定和解锁对象的reference,如果指定了同步的对象reference就指向这个对象,如果修饰的是方法,如果是类方法就指向 Class对象,如果是实例方法就指向这个实例。

2线程安全

2.1定义

当多线程访问一个对象时,如果不需要考虑多线程的调度和交替执行,也不需要进行额外的同步,或者在调用方进行额外的协调操作,调用这个对象的行为都可以获得正确的结果,就可以说这个对象是线程安全的。

@synchronized

作用:创建了一个互斥锁,它的作用和其他语言中的互斥锁作用一样

解释:这个是OBC中的一个锁定令牌,方式一个对象在同一时间内被其他线程访问,起到了线程保护的作用

使用范围:一般在单例模式或者操作类的static变量的时候使用,即共用的变量的时候

外延:这个令牌隐式的包含了异常处理,如果你不想使用的话,就使用锁吧

例子:

相关文章

网友评论

      本文标题:关于@synchronized(self)的用法 

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