자바 쓰레드 동기화,스레드 조인(Thread.join) 이론및 실습 (자바/JAVA/자바강좌/자바동영상/자바강의/JAVA강의/JAVA동영상/JAVA교육/자바교육/자바학원)


ojc.asia/bbs/board.php?bo_table=LecJava&wr_id=767
ojc.asia
Thread.join 메소드
인자로 다른 스레드 객체가 들어가는데 그 스레드에 달라붙어서 종료될 때까지 기다리 겠다는 메소드 이다. 결국 join() 메소드를 호출 하는것은 다른 스레드의 종료후에 어떤일을 하겠다는 의미 이다.
join(long millis, int nanos)
t 스레드가 현재 실행중인 Thread 객체 인 경우
t.join() 현재 스레드가 t스레드가 종료 될 때까지 실행을 일시 중지
다른 쓰레드가 만든 최종 결과물을 얻고자 할 때
네트워크로부터 데이타를 모으거나
계산 결과를 모을 때
public final void join() throws InterruptedException
package javatest;
/**
* 1부터 100까지의 합을 5개의 스레드에 구하도록 하고
* main Thread는 각가 스레드릐 합을 구한 후 결과를 출력
* @author jclee
*/
public class ThreadJoinTest {
static int sum = 0;
public static void main(String[] args) throws Exception{
Thread t1 = new Thread( () -> Sum( 1, 20) );
t1.start(); t1.join();
Thread t2 = new Thread( () -> Sum( 21, 40) );
t2.start(); t1.join();
Thread t3 = new Thread( () -> Sum( 41, 60) );
t3.start(); t1.join();
Thread t4 = new Thread( () -> Sum( 61, 80) );
t4.start(); t1.join();
Thread t5 = new Thread( () -> Sum( 81, 100) );
t5.start(); t1.join();
System.out.println("1부터 100까지의 합은 = " + sum);
}
public static void Sum(int start, int end) {
for (int i=start; i<=end; i++) {
sum += i;
}
}
}
[실행결과]
1부터 100까지의 합은 = 5050
#자바스레드, #자바쓰레드, #자바Thread,#자바쓰레드join, #스레드, #Thread.join, #자바, #JAVA, #자바동영상, #자바강의, #자바교육, #자바강좌, #자바동영상강의, #추천자바강의, #추천자바강좌, #JAVA동영상, #JAVA강의, #JAVA강좌, #JAVA교육, #JAVA, #추천JAVA강의, #추천JAVA교육, #추천JAVA강좌, #자바소스, #자바온라인교육, #자바온라인강의
댓글 없음:
댓글 쓰기