停止方法直到另一个执行完成?

时间:2013-05-08 14:08:03

标签: java

我有一个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无关(如果我是对的)。当然我正在加载数据库中的所有对象。

当我在第一种方法设置断点时,它工作正常。

如何在第一个方法执行之前停止第二个方法?

可能是什么原因?

1 个答案:

答案 0 :(得分:1)

您可以在另一个主题中运行此方法并使用wait()阻止他,并稍后使用notify()方法运行它。