使用java中父类静态变量的子类通过线程访问锁

时间:2016-03-18 09:23:56

标签: java multithreading

有权访问子类对象的线程是否可以在同步块中对其父类静态变量进行锁定,如果某个其他线程可以访问继承同一父对象的其他子类对象,则已经采用了锁定那个静态变量?

2 个答案:

答案 0 :(得分:3)

  

子类对象是否可以锁定父类静态变量

线程获取实例(Object)的锁定。不,如果一个线程获得一个锁,那么另一个线程将不得不等到第一个线程释放锁。请注意,类不会获取锁,线程也可以。

答案 1 :(得分:2)

答案是"mu"

锁不是由类而是由线程进行的,所以对你的问题没有有效的答案。

(另外,有内部类,有子类,但没有 child 类,我害怕)

查看您修改过的问题: 一次只有一个线程可以保持同步锁。保存它的线程可以根据需要多次锁定:当它进入另一个同步块同步时,它不会阻塞。

在查看锁时,类之间的关系并没有发挥作用。 因此,如果变量是静态的,并且您从一个线程同步它,那么另一个线程不能同时在它上同步 - 它必须等待第一个同步块完成。这与线程可以访问的类或对象无关。