线程同步问题?敬请朋友指教!! to gdsean(摇滚java) 我很穷,就一本书。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1。同步方法与同步块之间的差别?此方法可以同时进入,但blockff();被加锁。void blockf(){fff();// otherCode Heresynchronized (this){blockff();}如果是同步方法...synchronized void blockf(){fff();// otherCode Hereblockff();}就fff()也不能被执行。2。基于类的同步与基于对象的同步的差别?static synchronized void f(A a){a.ff();....}如果仅仅是同步a.ff()那么,A的其他实例如a1还是可以调用a1.ff(),但如果ff()方法是按上面的办法控制调用,就所有类A的实例都被同步控制ff()方法。 每个对象都包含了一把锁(也叫作“监视器”),它自动成为对象的一部分(不必为此写任何特殊的代码)。调用任何synchronized方法时,对象就会被锁定,不可再调用那个对象的其他任何synchronized方法,除非第一个方法完成了自己的工作,并解除锁定。在上面的例子中,如果为一个对象调用f(),便不能再为同样的对象调用g(),除非f()完成并解除锁定。因此,一个特定对象的所有synchronized方法都共享着一把锁,而且这把锁能防止多个方法对通用内存同时进行写操作(比如同时有多个线程)。每个类也有自己的一把锁(作为类的Class对象的一部分),所以synchronized static方法可在一个类的范围内被相互间锁定起来,防止与static数据的接触。注意如果想保护其他某些资源不被多个线程同时访问,可以强制通过synchronized方访问那些资源。 关于ArrayList如何返回元素索引值 实例化没有打印出字符 请问有什么方法可以返回当前焦点所在的组件吗? 同一包内类之间引用报错是为什么? CPU使用率一直是100%,使什么原因?大家帮我分析下 何故? 急!急!急!!!!!各位大虾,帮小弟一个忙,500分重金酬谢. 请问各位大虾,在Applet中如何缩放图片? java 打印\b不回退而打印一个口呢,为什么呢?大神们 关于JAVA请求HTTPS的问题 初学告急,各位大虾帮忙进来看看!!! 请问Applet里面可以用Socket进行通讯吗
此方法可以同时进入,但blockff();被加锁。
void blockf(){
fff();// otherCode Here
synchronized (this){
blockff();
}
如果是同步方法...
synchronized void blockf(){
fff();// otherCode Here
blockff();
}
就fff()也不能被执行。2。基于类的同步与基于对象的同步的差别?
static synchronized void f(A a){
a.ff();
....
}
如果仅仅是同步a.ff()那么,A的其他实例如a1还是可以调用a1.ff(),但如果ff()方法是按上面的办法控制调用,就所有类A的实例都被同步控制ff()方法。
每个类也有自己的一把锁(作为类的Class对象的一部分),所以synchronized static方法可在一个类的范围内被相互间锁定起来,防止与static数据的接触。
注意如果想保护其他某些资源不被多个线程同时访问,可以强制通过synchronized方访问那些资源。