多线程篇2——Thread类实现多线程

  • Post author:
  • Post category:其他




一、Thread类实现多线程的方式

  1. 需要继承Thread类
  2. 必须要重写run方法,指的是核心执行的逻辑
  3. 线程在启动的时候,不要直接调用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 版权协议,转载请附上原文出处链接和本声明。