请教一个多线程问题。

06-07-23 g.c.wang

对类的静态方法使用synchronized 时,会对class上锁

那么对类的其他非静态成员、方法,有无影响?

在class被锁时,对类的一个实例的其他非静态的成员、方法的访问会被阻塞吗?

越想也糊涂。

banq
2006-07-26 18:20

》对类的静态方法使用synchronized 时,会对class上锁

synchronized 是一个区域,可以加在方法上,也可以加在方法内任意一段代码中,同步只是这个区域,不会对其他区域产生影响。

因此,你的担忧是过滤的,但是如果类的其他非静态方法也参与同步区域的话,就难说。

尽量不要使用静态来处理业务或核心重要的东西。

superbible
2006-09-12 12:02

静态方法同步,对其他非同步方法没有影响。

synchronized 的意义是:对于此方法或块上锁,锁的对象是本类或本实例,同步的代码在同一时间、同一锁的范围内,只有一个在运行。