본문 바로가기

JAVA/DAY 21 _ 23.09.14

Thread_join

// join():

// 현재 실행 중인 스레드를 일시 중지하고, 스레드 s1이 종료될 때까지 기다립니다.
// --> 즉, 스레드 s1의 작업이 완료되기를 기다린 후, 다음 작업을 수행합니다.

 

// Vector : 동기화된(synchronized) 동작을 보장하는 리스트 구현체
// 요소들을 순서대로 저장하며, 인덱스를 사용하여 요소에 접근할 수 있습니다.
// 단일 스레드 환경에서는 ArrayList나 LinkedList 등의 비동기화 컬렉션을 사용하는 것이 더 효율적일 수 있다

 

class Some extends Thread{
	
	public void run() {
		for(int x = 0 ; x < 200 ; x++) {
			Data2.list.add("그냥");		// 1. Data2클래스의 list에 200번의 그냥을 넣겠다
		}
		System.out.println("스레드 끝!");
	}
	
}



class Data2{
	public static List<String> list = new Vector<>();
}
Some s1 = new Some();
s1.start();
Some s2 = new Some();
s2.start();
Some s3 = new Some();
s3.start();
Some s4 = new Some();
s4.start();
Some s5 = new Some();
s5.start();

s1.join();		// --> Waits for this thread to die. 
s2.join();
s3.join();
s4.join();
s5.join();

System.out.println(Data2.list.size());	// 2. 5번수행됐으니까 1000이겠지

 

'JAVA > DAY 21 _ 23.09.14' 카테고리의 다른 글

Network Basic  (0) 2023.09.14
Thread_Ex  (0) 2023.09.14
Thread 기본개념 활용  (0) 2023.09.14
Thread 생성 및 호출 방법  (0) 2023.09.14
Thread Basic  (0) 2023.09.14