Witam, Mój Linux mnie zaksoczył. W czwartek działał mi programik, a już dziś nie działa. Jak to się stało, no kurcze niewiem. Jeśli chodzi o kod to prosze:
public class ChancyDrop implements Drop {
int value;
static Object w=new Object();
boolean pelny=false;
public int take() throws InterruptedException
{
synchronized(w)
{
while(pelny)
{
w.wait()
}
pelny=true;
w.notify();
return value;
}
}
public void put(int value) throws InterruptedException
{
synchronized(w)
{
while(!pelny)
{
w.wait()
}
pelny=false;
this.value = value;
w.notify();
}
}
}
public class Main {
public static void main(String args[]) throws InterruptedException {
Drop d = new ChancyDrop();
//Drop t = new ChancyDrop();
// Drop d = new SafeDrop();
Producer p1 = new Producer(d);
Producer p2 = new Producer(d);
Consumer c1 = new Consumer(d);
Consumer c2 = new Consumer(d);
//p1.setPriority(5);
//c1.setPriority(4);
//int a=1;
//if(a%2==1)
//{
p1.start();
//a++;
//}
p2.start();
//p2.setPriority(3);
//if(a%2==0)
//{
c1.start();
//a++;
//}
c2.start();
//c2.setPriority(2);
p1.join();
p2.join();
c1.join();
c2.join();
/*if (p1.getSum() + p2.getSum() == c1.getSum() + c2.getSum())
System.out.println("Validation failed!");*/
}
}
Program na jednordzeniowym procesorze śmiga, tutaj jest kłopot, ponieważ są dwa rdzenie. Może jest tak ze java jeszcze nie jest nauczona, obsługi wątków w sposób dobry na procesorach X2 ??