当前位置: 技术问答>java相关
synchronized作用范围是什么?
来源: 互联网 发布时间:2015-10-16
本文导语: 我使用synchronized作为函数前缀,是仅仅指当前类中不能调用别的synchronized函数,还是整个运行的程序都不能再调用synchronized开头的函数? | java 的进程同步机制是采用管程, 一个synchronized 关...
我使用synchronized作为函数前缀,是仅仅指当前类中不能调用别的synchronized函数,还是整个运行的程序都不能再调用synchronized开头的函数?
|
java 的进程同步机制是采用管程,
一个synchronized 关键字只对一个特定的对象有用,
Java 在实现的时候每一个对象有一个琐,synchronize是对这个对象的锁操作,在字节码中对应monitorenter,和monitorexit指令。都是针对对象的。
synchronized(this){
this.mi=i;
}
因此我认为你的例子是不能保证同步的,要同步就应该如管程模型一样,将对资源的操作放在一个对象中。
一个synchronized 关键字只对一个特定的对象有用,
Java 在实现的时候每一个对象有一个琐,synchronize是对这个对象的锁操作,在字节码中对应monitorenter,和monitorexit指令。都是针对对象的。
synchronized(this){
this.mi=i;
}
因此我认为你的例子是不能保证同步的,要同步就应该如管程模型一样,将对资源的操作放在一个对象中。
|
是同步
|
如果synchronized类型的函数体需要修改数据的话,用synchronized是多线程安全的。
|
多个类的对象同时访问如:public synchronized void getFunction(){}的时候,只能在一个对象访问完后,另一个对象才能开始执行这个getFunction
|
对于同步这个关键字:你只要记住一点:
就是在某一个时刻只能有一个线程执行这个方法.那么你的问题就好分析了
就是在某一个时刻只能有一个线程执行这个方法.那么你的问题就好分析了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。