生产者/消费者线程Concurrency Java
我有一个生产产品的生产者和一个消费产品的消费者。我想要的是,如果一个产品在5分钟内没有被消费,我希望它被销毁 这是制作人的一部分:生产者/消费者线程Concurrency Java,java,multithreading,concurrency,thread-safety,rmi,Java,Multithreading,Concurrency,Thread Safety,Rmi,我有一个生产产品的生产者和一个消费产品的消费者。我想要的是,如果一个产品在5分钟内没有被消费,我希望它被销毁 这是制作人的一部分: boolean full = false; public void produce(int p) throws RemoteException { //choses a or b randomly //if a or b spot is occupied, thread must wait() synchroniz
boolean full = false;
public void produce(int p) throws RemoteException {
//choses a or b randomly
//if a or b spot is occupied, thread must wait()
synchronized(this){
if ((int)((Math.random()*10)%2) == 1){
while (a!=-1){try {
wait();
} catch (InterruptedException ex) {
Logger.getLogger(CHServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
a = p;
if (b!=-1) full = true;
notifyAll();
}
else {
while (b!=-1){try {
wait();
} catch (InterruptedException ex) {
Logger.getLogger(CHServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
b = p;
if (a!=-1) full = true;
notifyAll();
}
}
}
a&b应该是我的产品
我真的不知道如何测量时间,例如当线程正在等待或客户机不尝试使用该产品时。这段代码正在RMI java服务器上运行 我只想使用这样一个方案:当您生成某个东西时,使用
java.util.Timer()
设置未来5分钟的计时器。当物品被消费时,.cancel()
会启动计时器。如果计时器关闭,请执行您需要执行的任何清理操作。我只会使用这样的方案:当您生成某些内容时,请使用java.util.timer()
将计时器设置为5分钟。当物品被消费时,.cancel()
会启动计时器。如果计时器关闭,请执行您需要执行的任何清理操作。我只会使用这样的方案:当您生成某些内容时,请使用java.util.timer()
将计时器设置为5分钟。当物品被消费时,.cancel()
会启动计时器。如果计时器关闭,请执行您需要执行的任何清理操作。我只会使用这样的方案:当您生成某些内容时,请使用java.util.timer()
将计时器设置为5分钟。当物品被消费时,.cancel()
会启动计时器。如果计时器关闭,请执行您需要执行的任何清理。看起来您正在实现一个包含两个插槽的队列,这两个插槽分别是a和b。但随机选择一个时隙的策略并不是最优的。您可以等待一个插槽,而另一个插槽是空的。此外,消费者无法分辨您首先生产的是a还是b
不管怎样,如果我理解代码,你可以
看起来您正在实现一个包含两个插槽的队列,这两个插槽分别是a和b。但随机选择一个时隙的策略并不是最优的。您可以等待一个插槽,而另一个插槽是空的。此外,消费者无法分辨您首先生产的是a还是b 不管怎样,如果我理解代码,你可以
看起来您正在实现一个包含两个插槽的队列,这两个插槽分别是a和b。但随机选择一个时隙的策略并不是最优的。您可以等待一个插槽,而另一个插槽是空的。此外,消费者无法分辨您首先生产的是a还是b 不管怎样,如果我理解代码,你可以
看起来您正在实现一个包含两个插槽的队列,这两个插槽分别是a和b。但随机选择一个时隙的策略并不是最优的。您可以等待一个插槽,而另一个插槽是空的。此外,消费者无法分辨您首先生产的是a还是b 不管怎样,如果我理解代码,你可以
你能举个例子吗?干杯,获取有关玩游戏的信息Timers@ExceptionCaught计时器可能会工作,但现在更好。参见课堂文档中的注释。你能举个例子吗?干杯,获取有关玩游戏的信息Timers@ExceptionCaught计时器可能会工作,但现在更好。参见课堂文档中的注释。你能举个例子吗?干杯,获取有关玩游戏的信息Timers@ExceptionCaught计时器可能会工作,但现在更好。参见课堂文档中的注释。你能举个例子吗?干杯,获取有关玩游戏的信息Timers@ExceptionCaught计时器可能会工作,但现在更好。参见课堂文档中的注释。