프로그래밍/Java
[자바/java] 하나의 list 두 개 스레드 동작 합 구하기
Rolen
2023. 2. 5. 21:30
0부터 99가 담긴 List의 값을 두 개의 스레드로 0~49 / 50~99 의 합을 구한다.
동작은 겹치지 않도록 join()을 사용하도록 한다.
package q5;
import java.util.ArrayList;
public class Q5 extends Thread {
ArrayList<Integer> list;
static int index = 0;
static int sum = 0;
Q5(ArrayList lst) {
list = lst;
}
public void run() {
for (int i = 0; i < 50; i++) {
sum += list.get(index);
index++;
}
System.out.println(getName()+ " 종료, 현재 index: " + index);
System.out.println(getName()+ " 종료, 현재 sum_total: " + sum);
}
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<>();
for (int i = 0; i < 100; i++) {
list1.add(i);
}
Q5 t1 = new Q5(list1);
Q5 t2 = new Q5(list1);
t1.start();
try {
t1.join();
} catch(Exception e) {
System.out.println(e.toString());
}
t2.start();
}
}
728x90