2019-04-23

Java中一个线程可以多次start吗?

不可以

通过Thread实例的start(),一个Thread的实例只能产生一个线程。一个Thread的实例一旦调用start()方法,这个实例的started标记就标记为true,事实中不管这个线程后来有没有执行到底,只要调用了一次start()就再也没有机会运行了。

一个线程对象只能调用一次start方法.从new到等待运行是单行道,所以如果你对一个已经启动的线程对象再调用一次start方法的话,会产生:IllegalThreadStateException异常. 可以被重复调用的是run()方法。

Thread类中run()和start()方法的区别如下:

run()方法: 在本线程内调用该Runnable对象的run()方法,可以重复多次调用;

start()方法: 启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程

作者:这个该叫什么呢

链接:https://www.jianshu.com/p/f62a9e8da489

来源:

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(2019-04-23)