logo

Java의 스레드 개념

소개하기 전에 스레드 개념 , 두 개 이상의 작업을 병렬로 실행할 수 없습니다. 단점이었는데, 그 단점을 없애기 위해 스레드 개념 소개되었습니다.

매우 가벼운 프로세스 또는 여러 작업을 동시에 실행하여 프로그램이 보다 효율적으로 작동할 수 있도록 하는 프로세스의 가장 작은 부분이라고 할 수 있습니다.

비키 카우샬 나이

백그라운드에서 복잡한 작업을 수행하기 위해 우리는 Java의 스레드 개념 . 모든 작업은 기본 프로그램에 영향을 주지 않고 실행됩니다. 프로그램이나 프로세스에서 모든 스레드는 실행을 위한 별도의 경로를 가지므로 프로세스의 각 스레드는 독립적입니다.

Java의 스레드 개념

사용의 또 다른 이점 스레드가 실행될 때 예외나 오류가 발생하더라도 다른 스레드의 실행에는 영향을 미치지 않는다는 것입니다. 모든 스레드는 공통 메모리를 공유하며 자체 스택, 지역 변수 및 프로그램 카운터를 갖습니다. 여러 스레드가 동시에 병렬로 실행되는 경우 이 프로세스를 멀티스레딩 .

간단히 말해서 스레드는 다음과 같습니다.

  • 단일 프로세스 내에서 여러 활동을 수행할 수 있는 기능입니다.
  • 경량 프로세스.
  • 일련의 실행된 문입니다.
  • 중첩된 메서드 호출 순서입니다.

스레드 모델

프로세스와 마찬가지로 스레드도 여러 상태로 존재합니다. 이러한 상태는 다음과 같습니다.

Java의 스레드 개념

1) 신규(실행 준비 완료)

스레드가 들어 있습니다. 새로운 CPU 시간을 얻을 때.

2) 달리기

스레드가 들어 있습니다. 달리기 실행 중일 때의 상태입니다.

3) 정지

스레드가 정지된 일시적으로 비활성화되거나 실행 중인 경우의 상태입니다.

4) 차단됨

스레드가 막힌 리소스를 기다리고 있는 상태입니다.

f-문자열 파이썬

5) 종료됨

스레드는 주어진 시간에 실행을 즉시 중단할 때 이 상태가 됩니다.

스레드 생성

스레드는 '생성 또는 구현'을 통해 생성됩니다. 실행 가능한 인터페이스 또는 확장하여 스레드 클래스 . 스레드를 생성할 수 있는 유일한 두 가지 방법은 다음과 같습니다.

스레드를 생성하는 두 가지 방법에 대해 자세히 살펴보겠습니다.

스레드 클래스

스레드 클래스 스레드에서 다양한 작업을 수행할 수 있는 여러 메서드와 생성자가 있습니다. Thread 클래스는 물체 수업. 그만큼 물체 클래스는 실행 가능 상호 작용. 스레드 클래스에는 다양한 작업을 수행하는 데 사용되는 다음 생성자가 있습니다.

    실() Thread(실행 가능, 문자열 이름) 스레드(실행 가능한 대상) Thread(ThreadGroup 그룹, 실행 가능한 대상, 문자열 이름) Thread(ThreadGroup 그룹, 실행 가능한 대상) Thread(ThreadGroup 그룹, 문자열 이름) Thread(ThreadGroup 그룹, 실행 가능한 대상, 문자열 이름, 긴 stackSize)

실행 가능한 인터페이스(run() 메소드)

Runnable 인터페이스는 인스턴스가 스레드에 의해 실행되도록 의도된 클래스에 의해 구현되어야 합니다. 실행 가능한 인터페이스는 우리에게 다음을 제공합니다. 달리다() 스레드에 대한 작업을 수행하는 메서드입니다.

시작() 메서드

이 메소드는 새로 생성한 스레드를 시작하는 데 사용됩니다. 새 호출 스택으로 새 스레드를 시작합니다. 실행한 후 시작() 메서드를 실행하면 스레드가 상태를 New에서 Runnable로 변경합니다. 이는 다음을 실행합니다. 실행() 메소드 스레드가 실행하기에 적합한 시간을 얻었을 때.

예를 들어 어떻게 생성할 수 있는지 이해해 보겠습니다. 자바 Thread 클래스를 확장하여 스레드를 만듭니다.

휴식을 위한 자바

ThreadExample1.java

 // Implementing runnable interface by extending Thread class public class ThreadExample1 extends Thread { // run() method to perform action for thread. public void run() { int a= 10; int b=12; int result = a+b; System.out.println('Thread started running..'); System.out.println('Sum of two numbers is: '+ result); } public static void main( String args[] ) { // Creating instance of the class extend Thread class ThreadExample1 t1 = new ThreadExample1(); //calling start method to execute the run() method of the Thread class t1.start(); } } 

산출:

Java의 스레드 개념

실행 가능한 인터페이스를 구현하여 스레드 생성

Java에서는 실행 가능한 인터페이스를 구현하여 스레드를 생성할 수도 있습니다. 실행 가능 인터페이스는 run() 메소드와 start() 메소드를 모두 제공합니다.

실행 가능한 인터페이스를 사용하여 스레드를 생성, 시작 및 실행하는 방법을 이해하기 위해 예를 들어 보겠습니다.

ThreadExample2.java

 class NewThread implements Runnable { String name; Thread thread; NewThread (String name){ this.name = name; thread = new Thread(this, name); System.out.println( 'A New thread: ' + thread+ 'is created
' ); thread.start(); } public void run() { try { for(int j = 5; j > 0; j--) { System.out.println(name + ': ' + j); Thread.sleep(1000); } }catch (InterruptedException e) { System.out.println(name + ' thread Interrupted'); } System.out.println(name + ' thread exiting.'); } } class ThreadExample2 { public static void main(String args[]) { new NewThread('1st'); new NewThread('2nd'); new NewThread('3rd'); try { Thread.sleep(8000); } catch (InterruptedException excetion) { System.out.println('Inturruption occurs in Main Thread'); } System.out.println('We are exiting from Main Thread'); } } 

산출:

Java의 스레드 개념

위의 예에서는 실행 가능한 인터페이스를 구현하여 멀티스레딩을 수행합니다. 멀티스레딩에 대해 자세히 알아보려면 여기를 클릭하세요 .