多线程(三)---调用start和run的区别

多线程(三)---调用start和run的区别

总结经验

Thread 中的start() 只作两件事 1:开启线程 2:调用run方法

调用start和run方法区别?

调用start会开启线程,让开启的线程去执行run方法中的线程任务。直接调用run方法,线程并未开启,去执行run方法的只有主线程

一 . 第一段代码分析

只执行run方法,并未开启线程

1: 继承线程Thread类,建立子类对象,就是建立线程对象

2: 调用start方法

3: 因为start被覆盖并未开启线程,只是运行run方法

4: run方法打印结果是真正在运行的线程,main...李四...0

5: 打印的是真正的线程main--------------0

因为demo1,demo2线程未被开启,只有主线程在执行,demo1,demo2只是执行run方法

运行结果:

运行结果

二 . 第二段代码分析

开启线程

运行结果:

运行结果

线程内存图

线程堆栈内存分配

相关文章
相关标签/搜索