Java启动单独的线程,但在所有线程完成后做一些事情

时间:2019-03-13 15:00:47

标签: java multithreading

我正在创建一个进行大量图像处理的撞球台应用程序。我想将一些动作分成单独的线程。在我的示例中,我想做3个不同的线程:

1)搜索摄像机图像上的球

2)为投影仪创建模式(更改背景图像,进行某些透视变形等)

3)搜索提示并进行一些数学运算

此后,我想连接这3个线程的所有信息。当我这样做时:

        new Thread(() -> {
            tss.next()
            .findBalls();
        }).start();

        new Thread(() -> {
            tss.setProjectorMode(true);
            try {
                tss.projectorMode();
            } catch (LineServiceException | FileNotFoundException | InterruptedException e) {
                e.printStackTrace();
            }
        }).start();

        new Thread(() -> {
            // Dynamic mode
            if (0 == configurableProperties.getGameMode()) {
                tss
                .findCue()
                .makePredictions()
                .detectCollision();
            }
        }).start();

        this.table = tss.build();

然后所有3个线程都单独工作,但是我的tss.build无法正常工作,因为即使这些线程仍在进行中,它也会启动。如何使这个“构建”等待所有这些线程结束?

0 个答案:

没有答案