线程子类中的java同步方法

hwamh0ep  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(343)

我有一个扩展thread的类,在它的run()中调用了另一个方法。我想同步那个方法,在线程子类中定义的方法有可能被同步吗?

r6vfmomb

r6vfmomb1#

简言之:没有什么特别的 Thread 类,你定义的任何类都没有什么特别之处 extends Thread . 当然,是那个 Thread 类有一些方法可以做其他类方法不能做的事情,但是对于 String 类或 HashMap 或者任何值得写的课程。
当然, Thread 是java标准库的一部分,而您的类不是。当然, Thread 属于 java.lang 软件包,其实比其他软件包要特别一点。但是,尽管如此。。。
……这只是一节课。
p、 在美国,这里的其他答案都包含好的建议。读出来!

8wigbo56

8wigbo562#

synchronized 不是方法签名的一部分。它只是将方法体 Package 在一个块中的一种简写方法,该块在两个方法中都是同步的 this 或者 TheEnclosingClass.class .
对于子类中的方法,这有几个后果:
您可以使重写方法同步,即使被重写的方法不是同步的。
如果不同步重写方法,它就不会“继承”重写方法的同步性。如果你想同步的话,你必须显式的做。

laik7k3q

laik7k3q3#

这没有问题。原因是每个方法无论如何都是在一个线程中调用的。因此,在线程的方法调用堆栈中,某个地方可能会执行同步的方法或块。因此,您的这个方法与堆栈中调用的任何其他方法没有什么不同。

相关问题