【发布时间】:2012-04-25 13:45:56
【问题描述】:
我正在尝试编写一个生产者消费者模型(java中的生产者线程和消费者线程)
我想知道如何处理Thread.sleep 方法和Object 类的wait() 方法抛出的InterruptedException
package producerconsumer;
import java.util.ArrayList;
public class Consumer implements Runnable {
ArrayList<Integer> container;
@Override
public void run() {
while(true){
System.out.println("Consumer Thread Running");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(null==container){
System.out.println("container is null");
}
//Removing values from Arraylist
synchronized (container) {
if(container.size()==0){
try {
container.wait();
} catch (InterruptedException e) {
//How to tackle this exception
e.printStackTrace();
}
}
Integer removedInteger = container.remove(container.size()-1);
System.out.println("removedInteger..."+removedInteger);
}
}
}
public void setContainer(ArrayList<Integer> container) {
this.container = container;
}
}
这是我举的一个例子,在这个例子中可能不需要处理这些异常(我的假设)。
但我想知道我们需要处理此异常的不同场景可能是什么。
【问题讨论】:
-
@assylias 感谢您提出一个好的链接。让我看看这个。
标签: java multithreading exception-handling