正如标题所述,我对基于线程的结构有疑问。我需要做的是:
一个线程在循环中运行并检查列表中是否存在某些内容,如果存在则对对象执行一些操作,然后将其从列表中删除
从“外部”调用并将新对象添加到此列表的函数。
这是我的方法:
public class Queue implements Runnable {
private List<X> listOfObjects = new ArrayList<X>;
public void addToList(X toAdd){
listOfObject.add(toAdd);
}
public void run() {
while(true){
synchronized(listOfObjects){
if(!listOfObjects.isEmpty()){
listOfObjects.get(0).doSth();
listOfObjects.remove(0);
}
}
}
}
}
这是正确的方法吗?我是否也应该同步添加到此列表中?