我有两个Thread类。 buyThread和sellThread。在测试程序中,我需要声明并创建属于buyThread和sellThread的2个线程对象,并进行运行并加入线程。
Thread bt[] = new Thread[2]; // declare and create 2 threads object
Thread st[] = new Thread[2]; // declare and create 2 threads object
for (int i = 0; i < 2; i++) {
bt[i] = new BuyThread(rand1, rand2, stock);
bt[i].start();
}
for (int i = 0; i < 2; i++) {
st[i] = new SellThread(rand1, rand2, stock);
st[i].start();
}
for (int i = 0; i < 2; i++) // Can I do it this way for each Thread ?
{
try {
bt[i].join();
} catch (InterruptedException e) {
}
}
for (int i = 0; i < 2; i++) {
try {
st[i].join();
} catch (InterruptedException e) {
}
}
答案 0 :(得分:0)
您的加入很好。
请注意,您正在等待两个BuyThread
实例首先完成,然后等待两个SellThread
实例完成(按此顺序)。
将所有内容推送到数组中的好处是,您只需要将每个Buy
/ Sell
线程类的新实例添加到数组中,您的应用程序将等待所有这些实例完成
这不是你想要的吗?
编辑如评论中所述,您应该实现runnable而不是扩展Thread
类。那更干净了。有关详细信息,请参阅this question。