线程结束计算后返回值

先看我写的代码:

public class JsoupParser 
{       
    ArrayList<CompanyInfo> arr = new ArrayList<CompanyInfo>();

    public JsoupParser() {}

    public ArrayList<CompanyInfo> parse(final String link) throws IOException
    {
        Runnable runnable = new Runnable() 
        {
            public void run() 
            {
                //这里做一些操作

            }
        };
        new Thread(runnable).start();

        return arr; //这里出错
    }
}

系统返回了arr,在这里是null

怎么样在线程结束时返回arr?同时怎么判断Thread结束了?

判断线程结束,在线程结束时返回arr:

Thread parseThread = new Thread(runnable).start();

parseThread.join();

return arr;