在Java中可以同步抽象方法吗?

抽象方法是没有主体的方法。它仅包含带有半冒号的方法签名,以及前面的 abstract  关键字。

public abstract myMethod();

要使用抽象方法,您需要通过扩展其类来继承它,并为其提供实现(主体)。如果一个类至少包含一个抽象方法,则必须将其声明为抽象方法。

示例

import java.io.IOException;

abstract class MyClass {

   public abstract void display();

}

public class AbstractClassExample extends MyClass{

   public void display(){

      System.out.println("display方法的子类实现");

   }

   public static void main(String args[]) {

      new AbstractClassExample().display();

   }

}

输出结果

display方法的子类实现

同步(synchronized)-如果一个进程有多个线程同时独立运行(多线程),并且所有线程都试图访问同一资源,则会发生问题。

为了解决这个问题,Java提供了同步块/同步方法。如果在同步块或同步方法中定义资源(变量/对象/数组),则如果一个线程正在使用/访问该线程,则不允许其他线程访问。

synchronized (Lock1) {

   System.out.println("Thread 1: Holding lock 1...");

}

同步抽象方法

不,您不能在Java中同步抽象方法。当同步一个方法意味着您正在同步其中的代码时,即,当一个线程正在访问同步方法的代码时,不允许其他线程访问它。因此,同步抽象方法没有任何意义,如果您仍然尝试这样做,则会生成编译时错误。

import java.io.IOException;

public abstract class MyClass {

   public abstract synchronized void display();

}

输出结果

编译时错误-

MyClass.java:3: error: illegal combination of modifiers: abstract and synchronized

   public abstract synchronized void display();

                                     ^

1 error

以上是 在Java中可以同步抽象方法吗? 的全部内容, 来源链接: utcz.com/z/338603.html

回到顶部