저는 Java에서 스레드에 대해 조금 배우는 중이며 어떤 것이 나를 도울 수 있는지 궁금합니다.스레드와 Java를 알아 내려고 시도했습니다.
10 개의 정수 목록을 만들었습니다. 내가 원하는 것은 여러 스레드가 들어가서 인덱스 0에서 정수를 가져 와서 인쇄하고 제거하는 것입니다. 목록에 더 이상 숫자가 없을 때까지이 작업을 수행하고 싶습니다. 지금까지 내 코드입니다.
public class SlothTest implements Runnable{
static ArrayList<Object> test = new ArrayList<>();
static int listSize;
public static void main(String[] args) {
for (int i = 0; i < 10; i++){
test.add(i);
}
SlothTest runner = new SlothTest();
Thread alpha = new Thread(runner);
Thread beta = new Thread(runner);
alpha.setName("Alpha thread");
beta.setName("Beta thread");
alpha.start();
beta.start();
}
@Override
public void run() {
listSize = test.size();
while (listSize > 0){
getLink();
}
}
private synchronized void getLink(){
String threadName = Thread.currentThread().getName();
System.out.println(threadName + " printed " + test.indexOf(listSize - 1));
test.remove(0);
listSize = test.size();
}
}
누군가 내가 잘못하고있는 것을 지적 할 수 있습니까?
어떤 오류가 발생합니까? – Dev