Hi leute,ich versuche mit thread eina ArrayList<String> zu leeren.
AlienMother soll zeigen was vorhanden ist und AlienKiller soll leeren
Ich weiss aber nicht ob das wirklich der fall ist.
Alles anzeigen
Synchornized und ect hab ich mal weg gelassen
AlienMother soll zeigen was vorhanden ist und AlienKiller soll leeren
Ich weiss aber nicht ob das wirklich der fall ist.
Java-Quellcode
- import java.util.*;
- public class Aliens
- {
- Random r=new Random();
- ArrayList<String> list =new ArrayList<String>();
- public Aliens()
- {
- list.add("Alien:0");
- list.add("Alien:1");
- list.add("Alien:2");
- list.add("Alien:3");
- list.add("Alien:4");
- list.add("Alien:5");
- list.add("Alien:6");
- list.add("Alien:7");
- list.add("Alien:8");
- list.add("Alien:9");
- }
- public ArrayList<String> getAliens()
- {
- return list;
- }
- public void removeAliens()
- {
- list.remove(0);
- }
- }
public class AliensMother extends Thread
{
private Aliens aliens;
public AliensMother (Aliens ali)
{
aliens=ali;
}
public void run()
{
for ( int i = 0; i < 10; i++ ) {
aliens.getAliens();
System.out.println("Alien Mother put "+i+ " Aliens ");
try {
sleep( 100 );
} catch ( InterruptedException e ) { }
}
}
}
public class AlienKiller extends Thread
{
Aliens aliens;
public AlienKiller (Aliens a)
{
aliens=a;
}
public void run()
{
for(int i=0; i<=10; i++)
{
aliens.removeAliens();
System.out.println("AlienKiller kills"+ i + " Aliens ");
try {
sleep( 100 );
} catch ( InterruptedException e ) { }
}
}
}
public class Test {
public static void main( String[] args ) {
Aliens h = new Aliens();
AliensMother a1 = new AliensMother(h);
AlienKiller a2=new AlienKiller(h);
a1.start();
a2.start();
}
}
Synchornized und ect hab ich mal weg gelassen