스레드를 생성하는 방법에는 두 가지가 있습니다.
- Thread 클래스를 확장하여
- Runnable 인터페이스를 구현함으로써.
스레드 클래스:
Thread 클래스는 스레드에서 작업을 생성하고 수행하기 위한 생성자와 메서드를 제공합니다. Thread 클래스는 Object 클래스를 확장하고 Runnable 인터페이스를 구현합니다.
Thread 클래스의 일반적으로 사용되는 생성자:
- 실()
- 스레드(문자열 이름)
- 스레드(실행 가능 r)
- Thread(실행 가능 r,문자열 이름)
Thread 클래스의 일반적으로 사용되는 메소드:
실행 가능한 인터페이스:
Runnable 인터페이스는 인스턴스가 스레드에 의해 실행되도록 의도된 모든 클래스에 의해 구현되어야 합니다. 실행 가능한 인터페이스에는 run()이라는 메서드가 하나만 있습니다.
의사코드 자바
스레드 시작하기:
그만큼 시작() 메서드 Thread 클래스는 새로 생성된 스레드를 시작하는 데 사용됩니다. 다음 작업을 수행합니다.
- 새 스레드가 시작됩니다(새 호출 스택 포함).
- 스레드가 New 상태에서 Runnable 상태로 이동합니다.
- 스레드가 실행될 기회를 얻으면 해당 스레드의 대상 run() 메서드가 실행됩니다.
1) Thread 클래스를 확장한 Java Thread 예제
파일 이름: Multi.java
class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } }
산출:
thread is running...
2) Runnable 인터페이스를 구현한 Java Thread 예제
파일 이름: Multi3.java
class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } }
산출:
정수를 문자열로
thread is running...
Thread 클래스를 확장하지 않는 경우 클래스 개체는 스레드 개체로 처리되지 않습니다. 따라서 Thread 클래스 객체를 명시적으로 생성해야 합니다. 귀하의 클래스 run() 메소드가 실행될 수 있도록 Runnable을 구현하는 귀하의 클래스 객체를 전달하고 있습니다.
3) Thread 클래스 사용: Thread(문자열 이름)
위에 정의된 생성자를 사용하여 Thread 클래스를 직접 사용하여 새 스레드를 생성할 수 있습니다.
파일 이름: MyThread1.java
public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } }
산출:
My first thread
4) Thread 클래스 사용: Thread(Runnable r, 문자열 이름)
다음 프로그램을 관찰하세요.
파일 이름: MyThread2.java
public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } }
산출:
데이터 구조에서 구조란 무엇인가
My new thread Now the thread is running ...