// 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 |