如何在测试器中加入两个线程类?

时间:2014-02-12 17:17:57

标签: java multithreading

我有两个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) {
        }
    }

1 个答案:

答案 0 :(得分:0)

您的加入很好。

请注意,您正在等待两个BuyThread实例首先完成,然后等待两个SellThread实例完成(按此顺序)。

将所有内容推送到数组中的好处是,您只需要将每个Buy / Sell线程类的新实例添加到数组中,您的应用程序将等待所有这些实例完成

这不是你想要的吗?

编辑如评论中所述,您应该实现runnable而不是扩展Thread类。那更干净了。有关详细信息,请参阅this question