import java.util.ArrayList;
public class World
{
private ArrayList<Integer> listaKolekcji = new ArrayList<Integer>();
public void setInteger()
{
int random = (int) (Math.random()*100);
listaKolekcji.add(random);
System.out.println("Thread: "+ Thread.currentThread().getName() + " wartość: [" + random+"]");
}
public void usunWartosc()
{
if(listaKolekcji.size() > 0)
{
System.out.println("Usunieto: "+listaKolekcji.get(0));
listaKolekcji.remove(0);
} else {
System.out.println("Nie mozna usuwać czegoś czego nie ma");
}
}
}
public class Test {
public static void main(String[] args)
{
World world= new World();
TestWatku1 pierwszy = new TestWatku1(world);
TestWatku2 drugi = new TestWatku2(world);
Thread watek = new Thread(pierwszy);
Thread watek1 = new Thread(pierwszy);
Thread watek2 = new Thread(drugi);
watek.start();
watek1.start();
watek2.start();
}
}
import java.util.concurrent.TimeUnit;
public class TestWatku1 implements Runnable {
public World world;
public TestWatku1(World world) {
this.world = world;
// TODO Auto-generated constructor stub
}
@Override
public void run() {
while (true) {
world.setInteger();
try {
TimeUnit.SECONDS.sleep(10);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
}
}
import java.util.concurrent.TimeUnit;
public class TestWatku2 implements Runnable
{
public World world;
public TestWatku2(World world)
{
this.world = world;
// TODO Auto-generated constructor stub
}
@Override
public void run() {
while (true) {
world.usunWartosc();
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
}
}
Czy dobrze jest to zrobione? I jak mogę ewentualnie to poprawić?