多线程(三)---调用start和run的区别
总结经验
Thread 中的start() 只做两件事 1:开启线程 2:调用run方法
调用start和run方法区别?
调用start会开启线程,让开启的线程去执行run方法中的线程任务。直接调用run方法,线程并未开启,去执行run方法的只有主线程
一 . 第一段代码分析
1: 继承线程Thread类,创建子类对象,就是创建线程对象
2: 调用start方法
3: 由于start被覆盖并未开启线程,只是运行run方法
4: run方法打印结果是真正在运行的线程,main...李四...0
5: 打印的是真正的线程main--------------0
由于demo1,demo2线程未被开启,只有主线程在执行,demo1,demo2只是执行run方法
运行结果:
二 . 第二段代码分析
运行结果:
线程内存图