线程同步问题?敬请朋友指教!! 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方访问那些资源。 关于两个变量交换内容的问题 java 成员变量在内存中的什么位置 给定一个字符串,如何判断里面的字符串编码名称? 请问 怎样将程序和GUI连接再一起/怎样让bufferedreader System.in记录输入次数? fckeditor 没得支持JSP的版本么?? 非常简单的多线程问题,不过实在想不出来希望大家帮忙 请教高手 Java里如何实现日期的加减操作???最好给出源码,谢谢 快发疯了~求救~ 急 hibernate问题 雪地裸奔求高手解答 初学告急,各位大虾帮忙进来看看!!! 请问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方访问那些资源。