我有一个for循环,它向ArrayList添加了50,000个对象,如下所示,因此执行需要更长的时间。
public List<GoogleFeedEntry> getEntries(Iterator it) {
GoogleFeedUtil gfu = new GoogleFeedUtil(host, prefix, domain, serverName);
List<GoogleFeedEntry> entry = new ArrayList<GoogleFeedEntry>();
GoogleFeedEntry gfe;
GoogleFeedEntryShipping shipping;
while (it.hasNext()) {
gfe = new GoogleFeedEntry();
shipping = new GoogleFeedEntryShipping();
ProductBO product = (ProductBO) it.next();
entry.add(gfe);
}
return entry;
}
在这个方法之后,我正在调用另一种类似
的方法public void doSomething(){
//some code here
}
我在另一个方法中调用这两个方法。如果我将有限数量的对象列入列表,那么它正在解决任何问题。如果是50,000个对象,则抛出异常
java.sql.SQLException: Maximum open cursors exceeded ORA-01000
我觉得这与oracle无关(如果我是对的)。当然我正在加载数据库中的所有对象。
当我在第一种方法设置断点时,它工作正常。
如何在第一个方法执行之前停止第二个方法?
可能是什么原因?
答案 0 :(得分:1)
您可以在另一个主题中运行此方法并使用wait()
阻止他,并稍后使用notify()
方法运行它。