这两个方法都可以使线程进行运行,但是start只能用于第一次运行线程,后续要继续运行该线程需要使用run()方法。如果多次运行start()方法,会出现报错。
初次调用线程使用run()方法,无法使线程运行。
-
如果你对一个
Thread
实例直接调用run()
,它确实不会启动新的线程,而只是像普通方法一样在当前线程里执行它的代码块; -
但是代码 是会被执行 的——只是不会并发,而是同步地在调用者那条线程里跑。
这两个方法都可以使线程进行运行,但是start只能用于第一次运行线程,后续要继续运行该线程需要使用run()方法。如果多次运行start()方法,会出现报错。
初次调用线程使用run()方法,无法使线程运行。
如果你对一个 Thread
实例直接调用 run()
,它确实不会启动新的线程,而只是像普通方法一样在当前线程里执行它的代码块;
但是代码 是会被执行 的——只是不会并发,而是同步地在调用者那条线程里跑。