我有一些课。例如:
public class Data {
private String name;
public Data(String url) {
// There is download something from the Internet and set field "name".
}
public String getName() {
return name;
}
}
在某些方法中,我需要初始化对象数据数组。
ArrayList<Data> list = new ArrayList<Data>;
for(int i=0; i<max; i++) {
list.add(new Data("http://localhost/" + String.valueOf(i)));
}
但是太长了。我想这样做:
final ArrayList<Data> list = new ArrayList<Data>;
for(int i=0; i<max; i++) {
final int tmp = i;
new Thread() {
public void run() {
list.add(new Data("http://localhost/" + String.valueOf(tmp)));
}
}.start();
}
但是主线程比其他线程结束得更快,并且变量列表为空。我应该怎么办?请帮助:)
向上。从 Internet 下载一些数据并不太快,这就是我创建多个线程的原因。