【发布时间】:2010-12-27 19:35:01
【问题描述】:
我有可变数量的线程用于并行下载。我用过这个,
for(int i = 0; i< sth; i++){
thrList.add(new myThread (parameters));
thrList.get(i).start();
thrList.get(i).join();
}
我不知道为什么,但他们在等待对方完成。使用线程时,我应该得到混合打印输出,因为那时有几个线程运行该代码。但是,当我将它们打印出来时,它们总是有序的,一个线程等待前一个线程首先完成。我只希望他们加入主线程,而不是互相等待。我注意到当我在并行下载时测量时间。
我该如何解决这个问题?他们为什么要按顺序做?
在我的 .java 中, 有带有运行的 MyThread 类,有带有静态方法和变量的 Downloader 类。他们会是造成这种情况的原因吗?静态方法和变量?
我该如何解决这个问题?
【问题讨论】:
标签: java multithreading