等待2个并行线程完成

时间:2014-09-02 15:14:14

标签: java multithreading

我在线程上进行图像转换,在第二个上进行图像转换(并行)。

我的问题是检测到所有线程都已完成,因此我可以获取压缩文件并使用save方法保存它。

使用我的实际代码,在线程终止之前正在执行save方法,那么我该如何实现呢?

我的实际代码:

class Compression extends FileProcess {

    private Thread compressionThread;
    private Thread progressionThread;

    @Override
    protected void onStart () {
        // init data
    }

    @Override
    protected void onEnd () {

        // Wait here until all the threads are finished the 
        InputStream is = getFileContent (
                                new FileInputStream (
                                    new File ((String)params.get (FilePath))
                                );

        save (is); 
        System.out.println ("Done");
    }

    @Override
    protected Object getFileContent (InputStream input) {

        OutputStream os = new FileOutputStream ("aa.jpg");

        compress (input, os);

    }

    @Override
    protected void compress (InputStream input, OutputStream output) {

        compressionThread = new Thread () {

            @Override
            public void run () {

                // Compression process

            }
        };
        compressionThread.start ();

        progressionThread= new Thread () {

            @Override
            public void run () {

                // Progression windows

            }
        };
        progressionThread.start ();

    }
}

谢谢。

0 个答案:

没有答案