Java - 在当前线程完成时启动一个线程

时间:2013-02-06 11:47:09

标签: java multithreading

当前正在运行的线程退出时是否可以启动新线程? 我为框架编写的代码启动了一个线程,它锁定(不是java并发锁)文件。 我需要处理相同的文件,但由于线程持有锁,我无法这样做 由框架发起。我的要求是启动一个处理文件的新线程 一旦框架启动的线程完成

谢谢, 塞特希。

3 个答案:

答案 0 :(得分:1)

使用Thread.join()方法
请参阅Example

参考documentation

答案 1 :(得分:0)

您的基本代码结构应该像他的

public void run(){
//prepare
synchronized{
//Access File
}
//non-trivial statements
}

答案 2 :(得分:0)

这是一个在另一个线程结束时启动第二个线程的示例:

public class TwoThreads {

    public static void main(String[] args) {

        class SecondThread implements Runnable {
            @Override
            public void run() {
                System.out.println("Start of second thread");

                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) { }

                System.out.println("End of second thread");
            }
        }

        class FirstThread implements Runnable {
            @Override
            public void run() {
                System.out.println("Start of first thread");

                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) { }

                // Second thread gets launched here
                new Thread(new SecondThread()).start();

                System.out.println("End of first thread");
            }
        }

        new Thread(new FirstThread()).start();
    }
}