여러 가지 방법이 방법의 스레드 자바 구현입니까? 달성하는 방법에 대한 반환 값 스레드?
Java 스레드의 개발에서 스레드를 설정하는 여러 가지 방법이있다? 당신이 정보를 스레드에 의해 반환하는 데 필요한 경우 어떻게 할까? 당신은 달성 할 수 있는가? 카이거 반환 값이 다시 가져 방법 모두 스레드와 소스 코드 공유를 통해.
A : 된 타입의 반환 값이 없습니다
1 : 스레드 클래스 상속
2 : Runnable를 구현
모두를 캡처하는 모든 일반적으로 사용되는 코드 데모입니다.
1 : 스레드 클래스 상속 문구
정의 :이 유형은 스레드 클래스를 필요로 확장 한 다음 스레드 클래스의 run 메소드를 구현합니다.
편집
2 : Runnable를 표현을 구현 :
클래스가 구현하는 인터페이스 Runable, 다시 실행 방법을 정의합니다.
새로 만들기 스레드 객체가 생성자를 사용하여 매개 변수가, 매개 변수는 실행 가능하다. 그런 다음 thread.start ()
편집
2 : 반환 값
3 : 실현 호출 가능 <V> 인터페이스
단계 :
호출 클래스가 구현하는 인터페이스 재 호출 단계;
호출의 시간에, 스레드가 참조 구조를 가지고 사용 후 참조 구조가이 클래스를 FutureTask 사용하고 할 필요가있다.
get 메소드를 호출하는 마지막 작업.
다음과 같이 코드입니다 :
편집
결과 :
편집
호출 반환 값 자료 :
반환 값이 FutureTask에서 얻을 수 있기 때문에 우리는 FutureTask이 클래스에서 시작합니다. 클래스 다이어그램을 살펴보십시오 :
편집
FutureTask는 RunnableFuture 인터페이스 RunnableFuture 인터페이스 상속 미래와의 Runnable 인터페이스를 깨달았다.
편집
편집
우리는 돌아올 수없는 단 하나의 실행 값 방법을 발견,이 인터페이스 RunnableFuture를 찾습니다. 그런 다음, 반환 된 데이터는 스레드를 달성하기 위해 어떤 클래스입니까? 사실 FutureTask 클래스 내부에서. 우리는 FuntrueTask이 범주를 살펴 :
편집
재 입력 실행 방법. 마지막으로, 세트 결과가있다. 설정 방법이 있기 때문에. 데모 task.get () 메소드를 살펴 보자 :
편집
방법에 반환 값을 가져옵니다.
따라서, 발견 된 값을 리턴하는 이유 호출 인터페이스를 달성했다.
4 : 생성하는 스레드 풀 스레드를 사용하여
스레드 풀 스레드의 사용은 생성, 당신은 반환 값을 가질 수 있습니다, 당신은 값을 반환 할 수 없습니다. 사용 미이행에 대처하기 위해이 최상위 인터페이스.
의는 관계 집행 인 인터페이스를 살펴 보도록하자. 도는 다음과 같습니다 :
편집
어느 익숙한 ThreadPoolExecutor입니다 및로 스케줄을 보았다
4.1 : 집행자를 사용하여 더 리턴 가치가 스레드를 만들 수 없습니다 :
편집
설명 : 여기에 돌아올 수없는 값, 사실의 Runnable의 run 메소드를 호출합니다.
4.2 : 반환 값 데모
클래스 구현이 호출 인터페이스를 만듭니다. 도는 다음과 같습니다 :
편집
이 인터페이스를 통해, 우리는 반환 값이 있음을 알고있다.
편집
세 : 요약
자바 스레드는 네 가지 방법을 구현했습니다 :
우리는 교환뿐만 아니라 두 가지 방법과 같은 반환 값을 값없이 두 종류 가장 잘 알고 있습니다. 그들은 :
스레드의 Runnable 및 호출 가능 및 스레드 풀