>  기사  >  Java  >  자바 학습 기반의 멀티스레딩 구현 방법

자바 학습 기반의 멀티스레딩 구현 방법

高洛峰
高洛峰원래의
2017-03-19 11:23:521600검색

이 글에서는 자바 학습 기반의 멀티스레딩 구현 방법을 소개합니다

1 Thread 클래스 상속

Thread 클래스 상속 방법은 멀티 스레드 구현으로 나열되어 있지만 내 방법에 따르면 Thread는 본질적으로 스레드의 인스턴스를 나타내는 Runnable 인터페이스를 구현하는 인스턴스이며 스레드를 시작하는 유일한 방법은 Thread 클래스의 start() 인스턴스 메서드를 이용하는 것입니다. start() 메서드는 새 스레드를 시작하고 run() 메서드를 실행하는 기본 메서드입니다. 이러한 방식으로 멀티스레딩을 구현하는 것은 매우 간단합니다. 자신의 클래스를 통해 Thread를 직접 확장하고 run() 메서드를 재정의하면 새 스레드를 시작하고 자신이 정의한 run() 메서드를 실행할 수 있습니다.

public class MyThread extends Thread {  
  public void run() {  
   System.out.println("MyThread.run()");  
  }  
} 
 //启动线程
MyThread myThread1 = new MyThread();  
MyThread myThread2 = new MyThread();  
myThread1.start();  
myThread2.start();

2 Runnable 인터페이스 구현

클래스가 다른 클래스를 상속하는 경우 Thread 클래스를 상속할 수 없으므로(Java에서는 다중 상속이 지원되지 않음) Runnable 인터페이스를 다음에서 구현해야 합니다. 구현 클래스 run() 메소드를 다시 작성하고 기본 메소드에서 멀티스레딩을 구현하십시오. 구현 클래스 객체를 인스턴스화하고 Thread 클래스 객체를 초기화한 다음 구현 클래스를 Thread 객체에 전달합니다. 실제로 Runnable 대상 매개변수가 Thread에 전달되면 Thread의 run() 메서드는 target.run()을 호출합니다.

//实现Runnable接口
public class MyThread extends OtherClass implements Runnable {  
  public void run() {  
   System.out.println("MyThread.run()");  
  }  
}  
//复写run()方法
public void run() {  
  if (target != null) {  
   target.run();  
  }  
} 
//实例化对象
MyThread myThread = new MyThread();  
Thread thread = new Thread(myThread);  
thread.start();

3 ExecutorService, Callable 및 Future를 사용하여 반환된 결과로 멀티스레딩을 구현합니다

이 부분은 아직 학습되지 않았으므로 나중에 추가되지 않습니다.


위 내용은 자바 학습 기반의 멀티스레딩 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.