>  기사  >  Java  >  스레드--join() 메소드 소개

스레드--join() 메소드 소개

零下一度
零下一度원래의
2017-06-29 14:53:071564검색

1. Join() 메소드, 공식 설명은 이 스레드가 종료될 때까지 기다리고 현재 스레드가 종료될 때까지 기다립니다.
소스 코드:

//매개변수 없음, 기본 호출 Join(0 )
public final void Join()이 InterruptedException을 발생시킵니다. {
join(0);
}
//밀리초 밀리초 + 나노초 나노초를 두 번 전달합니다. 즉, 밀리초 + 나노초를 기다린 후 마지막으로 메서드를 호출합니다. 3
공개 최종 동기화 무효 조인(long millis, int nanos)
throws InterruptedException {
if (millis < 0) {
throw new IllegalArgumentException("시간 초과 값은 음수");
}
if ( nanos < 0 || nanos > 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos >= 500000 | | (nanos != 0 && millis == 0)) {
millis++;
}
join(millis);
}
//방법 3: 대기 시간을 밀리초 단위로 전달합니다. 그리고 하단에 있는 Object 호출 wait(time)
public finalsynchronous void Join(long millis)
throws InterruptedException {
long base = System.currentTimeMillis();
long now = 0;
if ( millis < 0) {
throw new IllegalArgumentException("timeout 값이 음수입니다");
}
if (millis == 0) {
while (isAlive()) {
wait(0) ;//영원히 기다리는 것을 의미합니다. 스레드가 죽도록 지시합니다
}
} else {
while (isAlive()) {
long Delay = millis - now;
if (delay <= 0) {
break;
}
대기(지연);
now = System.currentTimeMillis() - base;
}
}
}
2 예를 들어 응용 프로그램 , 여러 스레드가 특정 순서로 실행되어야 합니다
public class ThreadJoin은 Thread {
public void run(){
try {
this.sleep(500);
System.out.println("["+ new Date()+"]"+this.getName());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) 예외 발생 {
int length = 5;
Thread[] 스레드 = new Thread[length];
for(int i=0 ; i
threads[ i] = new ThreadJoin();
threads[i].start();
threads[i].join();//join은 각 스레드 후에 호출됩니다. 시작되었습니다
}
long endTime=System.currentTimeMillis();
}
}
/*
output:
[Sun Jun 11 13:40:42 CST 2017]Thread-0
[ 6월 11일 일요일 13:40:43 CST 2017]스레드 -1
[6월 11일 일요일 13:40:43 CST 2017]Thread-2
[6월 11일 일요일 13:40:44 CST 2017]Thread-3
[Sun Jun 11 13:40:44 CST 2017] Thread-4
댓글을 달면 Join()
결과가 매번 다를 수 있습니다
[Sun Jun 11 13:51:09 CST 2017]Thread-2
[6월 11일 일요일 13:51:09 CST 2017]Thread-4
[6월 11일 일요일 13:51:09 CST 2017]Thread-1
[6월 11일 일요일 13:51: 09 CST 2017]Thread-3
[Sun Jun 11 13:51:09 CST 2017]Thread-0
*/
서두르지 마세요. 차근차근 해야지

위 내용은 스레드--join() 메소드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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