Thread t1 = new Thread(new Runnable() {
public void run(){
int i = 0;
while(secondsPassed <= 5) {
while(list.length()<4 && secondsPassed <= 5);
Random r = new Random();
if(r.nextInt(100) < 10) {
list.removeFirst();
i++;
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
System.out.println("Thread t1 is finished with "+ i);
}
});
Thread t2 = new Thread(new Runnable() {
public void run(){
int i = 0;
while(secondsPassed <= 5) {
Random a = new Random();
System.out.println("Thread t2 is turn "+ i + "with" + a.nextInt(100));
char c = (char)(a.nextInt(23) + 'D');
if(a.nextInt(100) < 10) {
list.insert(c);
i++;
}
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("Thread t2 is finished with " + i);
}
});
Для моего потока 1 и потока 2 они ожидают удаления и добавления узла в связанный список, и они ограничены методом Random () с вероятностью 10%, и после каждого хода они будутспать на 20 мс.Однако каждый раз, когда я запускаю свою программу, потоки 1 и 2 всегда будут генерировать одинаковые возможности.