📜  我们可以启动一个线程两次吗(1)

📅  最后修改于: 2023-12-03 14:54:23.157000             🧑  作者: Mango

我们可以启动一个线程两次吗?

在Java中,一个Thread实例只能被启动一次。如果你尝试启动一个已经启动过的Thread,则会抛出java.lang.IllegalThreadStateException异常。

下面是一个示例程序:

Thread thread = new Thread(() -> {
    System.out.println("Hello, world!");
});

thread.start();
thread.start(); // 这里会抛出IllegalThreadStateException异常

输出结果:

Exception in thread "main" java.lang.IllegalThreadStateException
	at java.base/java.lang.Thread.start(Thread.java:802)
	at com.example.demo.DemoApplication.main(DemoApplication.java:14)

这个异常的原因是,在调用Thread的start()方法时,它会检查线程的状态。如果线程已经启动,就会抛出上述异常。

如果你需要启动一个已经启动过的线程,可以考虑创建一个新的Thread实例来启动它,或者使用线程池来管理线程的生命周期。

总之,记住:一个Thread实例只能被启动一次,否则会抛出异常。