私は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();
}
}
誰かが私が間違っていることすべてを指摘するのを手伝ってもらえますか、それはおそらくたくさんあります。