书上有这样一句话 看不明白:
针对每个类 也有一个锁(作为类的Class对象的一部分) 所以syschronized static 方法可以在类的范围内防止对static数据的并发访问
请高手尽量详细的解答一下 包括“()”里的内容 结合起来回答
谢谢
针对每个类 也有一个锁(作为类的Class对象的一部分) 所以syschronized static 方法可以在类的范围内防止对static数据的并发访问
请高手尽量详细的解答一下 包括“()”里的内容 结合起来回答
谢谢
调试欢乐多
这是类的一种设计.如果把类比作是一张门,那么每张门都应该拥有一把锁,并作为门的一部分.
syschronized static 方法可以在类的范围内防止对static数据的并发访问 由于静态的方法是类级别的(就是可以通过类名直接访问)不需要具体的实例. 所以静态方法同步的话.自然就是类范围类的同步.
class className
{
Lock lock1; × N
static Lock lock2; × 1
}所以,1楼的说法是对的。
同意:这是类的一种设计.如果把类比作是一张门,那么每张门都应该拥有一把锁,并作为门的一部分. syschronized static 方法可以在类的范围内防止对static数据的并发访问
个人:主要是防止相同权限的线程对此静态方法进行并发访问,
而造成线程的死锁...
Class instance 级别的锁一个是 static 的
另一个则没有。
()里的对象就得保持一致!
,必须在A访问完毕时,最后把锁才被解开,那么其他线程就可以访问了。更多理解可参看http://www.enet.com.cn/eschool/zhuanti/java/ 网页上视频教程第五课的"第五课D"开始的内容!
里面有关于同步(syschronized)的详细讲解!是针对具体的实例讲解的!