Java는 Thread 클래스를 사용하여 스레드를 나타내며 모든 스레드 객체는 Thread 클래스 또는 해당 하위 클래스의 인스턴스여야 합니다. Java는 다음과 같이 세 가지 방법으로 스레드를 생성할 수 있습니다.
1) Thread 클래스를 상속하여 스레드 생성
2) Runnable 인터페이스를 구현하여 스레드 생성
# #3) Callable과 Future를 사용하여 스레드 생성 스레드를 생성하는 세 가지 방법을 각각 살펴보겠습니다.Thread 클래스를 상속받아 스레드를 생성하는 단계는 다음과 같습니다.
1】d Thread 클래스의 하위 클래스를 정의하고 run() 메소드를 다시 작성하면 이 메소드의 메소드 본문은 스레드가 완료해야 하는 작업이며 run() 메소드를 스레드 실행 본문이라고도 합니다. 2] Thread 하위 클래스의 인스턴스 생성, 즉 스레드 객체 생성 3] 스레드를 시작합니다. 즉, 스레드의 start() 메서드를 호출합니다. 스레드# #예:
public class MyThread extends Thread{//继承Thread类 public void run(){ //重写run方法 } } public class Main { public static void main(String[] args){ new MyThread().start();//创建并启动线程 } }
# #1】Runnable 인터페이스의 구현 클래스를 정의하고 run() 메서드도 다시 작성해야 합니다. 이 run() 메서드는# #2】Runnable 구현 클래스의 인스턴스를 생성하고 이 인스턴스를 Thread 대상으로 사용하여 Thread 개체를 생성합니다. 이 Thread 개체는 실제 스레드 개체입니다.
3] 세 번째 부분은 여전히 스레드를 시작합니다. 스레드 개체의 start() 메서드를 호출하여
# #예:public class MyThread2 implements Runnable {//实现Runnable接口 public void run(){ //重写run方法 } } public class Main { public static void main(String[] args){ //创建并启动线程 MyThread2 myThread=new MyThread2(); Thread thread=new Thread(myThread); thread().start(); //或者 new Thread(new MyThread2()).start(); } }
Callable 및 Future를 사용하여 스레드를 만드는 단계는 다음과 같습니다. # #
1】Callable 인터페이스의 구현 클래스를 생성하고 call( ) 메서드를 구현한 후 구현 클래스의 인스턴스를 생성합니다. (java8부터는 Lambda 표현식을 직접 사용하여 Callable을 생성할 수 있습니다. 사물).
2】 FutureTask 클래스를 사용하여 Callable 객체를 래핑합니다. FutureTask 객체는 Callable 객체의 call() 메서드 반환 값을 캡슐화합니다.3】 FutureTask 객체를 Thread 객체로 합니다. (FutureTask는 Runnable 인터페이스를 구현하기 때문에) 대상은 스레드를 생성하고 시작합니다.
4] 실행 후 반환 값을 얻기 위해 FutureTask 객체의 get() 메서드를 호출합니다. 하위 스레드 끝
예:
public class Main { public static void main(String[] args){ MyThread3 th=new MyThread3(); //使用Lambda表达式创建Callable对象 //使用FutureTask类来包装Callable对象 FutureTaskfuture=new FutureTask ( (Callable )()->{ return 5; } ); new Thread(task,"有返回值的线程").start();//实质上还是以Callable对象来创建并启动线程 try{ System.out.println("子线程的返回值:"+future.get());//get()方法会阻塞,直到子线程执行结束才返回 }catch(Exception e){ ex.printStackTrace(); } } }
자바에 대한 자세한 내용은
javaBasic Tutorial열을 참고하세요.
위 내용은 자바에서 스레드를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!