Java에서 실행 가능한 인터페이스: 구현, 단계 및 오류

게시 됨: 2021-05-02

목차

소개

Java 에서 실행 가능한 인터페이스 는 인스턴스가 스레드로 실행될 수 있는 인터페이스입니다. 스레드로 작업하는 동안 실행 가능한 인터페이스는 Java 프로그래밍 언어의 핵심 요소로 작동합니다. 스레드를 실행하기 위해 생성된 Java 클래스는 이 인터페이스를 구현해야 합니다. 이 기사는 Java에서 실행 가능한 인터페이스 와 구현 프로세스에 대한 깊은 이해를 제공합니다.

Java에서 실행 가능한 인터페이스는 무엇입니까?

실행 가능한 인터페이스는 단일 메서드를 포함하는 인터페이스입니다. Java 프로그램은 java.lang 패키지에 이 단일 메소드를 정의하고 스레드 클래스가 실행될 때 이를 호출합니다. 클래스가 스레드를 사용하여 구현할 수 있는 개체에 대한 템플릿을 제공합니다. 다음 방법 중 하나로 Java에서 실행 가능한 인터페이스를 구현할 수 있습니다 .

  • 서브클래스 스레드 사용
  • run() 메서드 재정의

Java는 프로그램에서 다중 상속을 허용하지 않습니다. 하나의 클래스만 확장할 수 있으며 스레드 클래스를 확장하면 더 많은 메모리, 계산 시간 및 기타 리소스를 소모합니다. 따라서 추가 메서드를 사용하는 오버헤드가 추가됩니다. 위의 두 가지 옵션 중 실행 가능한 인터페이스를 사용하여 스레드를 만드는 것이 좋습니다. 그렇게 하려면 run() 메서드에 대한 구현을 제공해야 합니다.

Java에서 실행 가능한 인터페이스를 사용하여 스레드를 생성하는 단계

Java에서 실행 가능한 인터페이스를 사용하여 스레드를 작성하려면 다음 단계를 수행하십시오 .

  1. 실행 가능한 인터페이스를 구현할 스레드 클래스를 만듭니다.
  2. 스레드 클래스에서 run() 메서드를 재정의하는 함수를 작성합니다.
  3. Thread 클래스의 인스턴스를 만듭니다.
  4. 스레드 인스턴스에는 실행 가능한 개체를 허용하는 생성자가 있습니다. 이 개체를 스레드 인스턴스에 매개변수로 전달합니다.
  5. 마지막으로 스레드 인스턴스의 시작 메서드를 호출합니다.

또한 읽기: Java 프로젝트 아이디어 및 주제

Java에서 실행 가능한 인터페이스 구현

run() 메서드의 구현은 새 스레드를 만드는 가장 쉬운 방법입니다. 새로운 스레드를 생성하기 위한 시작점 역할을 합니다. 실행 가능한 인터페이스 구현은 run() 메서드 내부의 코드를 사용하고 동시 스레드에서 실행합니다. 클래스를 호출하거나, 새 변수를 만들거나, run() 메서드에서 작업을 호출하여 Java에서 실행 가능한 인터페이스 를 구현할 수 있습니다. 프로그램은 코드에서 return 문을 인쇄할 때까지 스레드가 비활성 상태인지 확인합니다.

공개 클래스 TestRunnableInterface {

공개 정적 무효 메인(문자열[] 인수) {

System.out.println("기본() 메서드에서: " + Thread.currentThread().getName());

System.out.println(" Java에서 실행 가능한 인터페이스 구현 ");

Runnable 인스턴스 = new Runnable() {@Override

공개 무효 실행() {

System.out.println("run() 메서드에서: " + Thread.currentThread().getName());

}

};

System.out.println("스레드 개체의 새 인스턴스를 만듭니다.");

스레드 테스트 = 새로운 스레드(인스턴스);

System.out.println("스레드 실행 중입니다!");

테스트 시작();

}

}

산출

기본() 메서드에서: 기본

Java 에서 실행 가능한 인터페이스 구현

스레드 개체의 새 인스턴스를 만듭니다.

run() 메서드에서: Thread-0

Java에서 실행 가능한 인터페이스를 구현할 때 발생하는 오류

run() 메서드는 구문 또는 코드 오류로 인해 프로그램이 중단될 때 런타임 예외 오류를 발생시킵니다. Java 가상 머신이 오류를 감지하지 못하면 생성된 스레드가 JVM에서 놓친 예외를 처리합니다. 예외 처리기는 예외를 인쇄하고 프로그램을 중지합니다.

가져오기 java.io.FileNotFoundException;

공개 클래스 TestRunnableInterface {

공개 정적 무효 메인(문자열[] 인수) {

System.out.println("주 스레드는: " + Thread.currentThread().getName());

스레드 테스트 = new Thread(new TestRunnableInterface().new DemoInstance());

테스트 시작();

}

개인 클래스 DemoInstance는 Runnable {을 구현합니다.

공개 무효 실행() {

System.out.println(Thread.currentThread().getName() + ", run() 메서드를 호출합니다!");

노력하다 {

새로운 FileNotFoundException() 던지기;

}

catch(FileNotFoundException 데모) {

System.out.println("오류가 발생했습니다!");

데모.프린트스택트레이스();

}

}

}

}

산출

기본 스레드는 다음과 같습니다.

Thread-0, run() 메서드를 호출합니다!

오류가 발생했습니다!

java.io.FileNotFoundException

TestRunnableInterface$DemoInstance.run(Example.java:21)에서

java.lang.Thread.run(Thread.java:748)에서

위 프로그램의 TestRunnableInterface 클래스는 FileNotFoundException 예외를 throw하지 않습니다. Java 가상 머신은 TestRunnableInstance 클래스에서 처리해야 하는 예외를 처리합니다.

Java에서 실행 가능한 인터페이스의 사용 사례

Java에서 실행 가능한 인터페이스 서버가 클라이언트로부터 여러 연결 요청을 수신하는 네트워킹 시나리오에서 사용됩니다. Java 실행 가능한 인터페이스는 다중 스레드 프로그래밍을 수행하여 이를 빠르고 효율적으로 처리합니다.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

간단히 말해서 Java에서 실행 가능한 인터페이스는 Java에서 스레드를 생성할 때 서브클래스 스레드에 비해 항상 더 나은 선택입니다. 기사에 사용된 코드는 설명을 위한 것입니다. 요구 사항에 따라 예제에 제공된 명령문을 수정할 수 있습니다. 이 기사에서는 Java에서 실행 가능한 인터페이스에 대해 배웠고 Java에서 실행 가능한 인터페이스 를 구현하여 스레드를 생성하는 방법을 배웠습니다 .

코드를 사용해 Java 생성자의 지식을 강화할 수 있습니다. Java에 대한 심층적인 이해를 원하시면 Full Stack Development 과정의 upGrad Executive PG Program을 확인하십시오 . 이 과정은 일하는 전문가를 위해 설계되었으며 최고의 회사에서 엄격한 교육 및 직업 지원을 제공합니다.

자바에서 멀티스레딩이란?

멀티스레딩은 작업이 동시에 실행되는 Java의 개념입니다. 단일 작업이 완료될 때까지 기다리지 않고 프로그램이 동시에 여러 작업을 수행할 수 있습니다. Java 및 Java 개발자의 가장 인기 있는 주제 중 하나입니다. 멀티스레딩은 자바의 매우 강력한 기능 중 하나입니다. 여러 스레드를 실행하여 CPU를 효율적으로 사용합니다. Java에는 스레드라는 특수한 구조가 있습니다. 스레드는 기본적으로 Java 바이트 코드 명령의 임의 시퀀스를 실행할 수 있는 소프트웨어 프로세스입니다. 각 스레드의 실행은 다른 스레드와 독립적입니다. 개발자는 언제든지 새 스레드를 생성할 수 있으며 JVM은 이 스레드의 실행을 처리합니다. 이는 확장성과 응답성이 뛰어난 애플리케이션을 개발하는 데 도움이 됩니다.

Java에서 실행 가능한 인터페이스는 무엇입니까?

실행 가능한 인터페이스는 별도의 스레드에서 실행할 수 있는 응용 프로그램을 작성하는 데 사용됩니다. 실행 가능한 인터페이스를 구현하는 모든 클래스를 스레드라고 합니다. 스레드의 코드는 스레드가 시작된 후 인터프리터에 의해 실행됩니다. 실행 가능한 인터페이스를 구현하고 고유한 멀티스레딩 프로그램을 만들 수 있습니다. 이 인터페이스를 구현하는 방법에는 두 가지가 있습니다. 첫 번째는 스레드 하위 클래스를 사용하는 것입니다. 다른 하나는 run() 메서드를 재정의하는 것입니다.

멀티스레딩은 실제로 어떻게 작동합니까?