一、Thread类实现多线程的方式
- 需要继承Thread类
- 必须要重写run方法,指的是核心执行的逻辑
- 线程在启动的时候,不要直接调用run方法,而是要通过start()来进行调用
二、 实例
以下两段代码除了表示出不同的地方,其他地方均相同
public class ThreadDemo extends Thread{
@Override
public void run() {
for(int i = 0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"--------------"+i);
}
}
public static void main(String[] args) {
ThreadDemo threadDemo = new ThreadDemo();
threadDemo.run(); //此处注意
for(int i =0;i<5;i++){
System.out.println(Thread.currentThread().getName()+"==========="+i);
}
}
}
结果如下
main--------------0
main--------------1
main--------------2
main--------------3
main--------------4
main--------------5
main--------------6
main--------------7
main--------------8
main--------------9
main===========0
main===========1
main===========2
main===========3
main===========4
很显然,这并没有实现多线程的效果,也是以上Thread类实现多线程的方式第三点要求的原因
更改后代码如下
public class ThreadDemo extends Thread{
@Override
public void run() {
for(int i = 0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"--------------"+i);
}
}
public static void main(String[] args) {
ThreadDemo threadDemo = new ThreadDemo();
threadDemo.start(); //此处注意
for(int i =0;i<5;i++){
System.out.println(Thread.currentThread().getName()+"==========="+i);
}
}
}
结果如下
:
main===========0
Thread-0--------------0
main===========1
Thread-0--------------1
main===========2
Thread-0--------------2
main===========3
Thread-0--------------3
main===========4
Thread-0--------------4
Thread-0--------------5
Thread-0--------------6
Thread-0--------------7
Thread-0--------------8
Thread-0--------------9
Process finished with exit code 0
每次运行相同的代码,出来的结果可能不一样,原因在于多线程谁先抢占资源无法进行人为控制
版权声明:本文为weixin_41714868原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。