编程语言
首页 > 编程语言> > 应用程序用 Thread 子类实现多线程

应用程序用 Thread 子类实现多线程

作者:互联网

import java.util.Date;
public class TT{
    static Athread threadA;  //声明静态对象
    static Bthread threadB;
        public static void main(String args[]){
            Athread threadA = new Athread();  //创建对象
            threadB = new Bthread();
            threadA.start();
            threadB.start();
        }
    }
    class Athread extends Thread{
        public void run(){
            Date timeNow;//为了能输出当时的时间
            for(int i=0;i<=5;i++)
            {
                timeNow = new Date();//得到当前时间
                System.out.println("我是 threadA:" +timeNow.toString());
                try{sleep(2000);}
                catch(InterruptedException e){}
            }
        }
    }
    class Bthread extends Thread {
        public void run() {
            Date timeNow;//为了能输出当时的时间
            {
                for (int i = 0; i <= 5; i++) {
                    timeNow = new Date();//得到当前时间
                    System.out.println("我是 threadB:" + timeNow.toString());
                    try {
                        sleep(1000);
                    } catch (InterruptedException e) {
                    }
                }
            }
        }
    }
}

 

 main()方法中创建了两个线程 threadA  threadB,它们分别是Thread 子类 Athread 和 Bthread 的实例,并分别调用它们的 start()方法启动它们。

threadA 先调用 start()方法,类 Athread 中的 run()方法将自动执行。由于 threadA 线程先执行,它的 run()方法输出“我是 ThreadA”和当时的时间后,threadA 线程主动休息 2000 毫秒,让出 CPU。这时正在等待 CPU 的 threadB 线程获得 CPU 资源,执行它的run()方法,输出“我是 threadB”和当时的时间,threadB 线程主动让出 CPU,1000 毫秒后又来排队等待 CPU 资源。过了 1000 毫秒后,这时 threadA 线程还没有“醒来”,因此又轮到 threadB 执行。再次输出“我是 threadB”。然后又休息,这时threadA好了,执行。然后又B,休息1000ms,又B   ......

B执行完6次后就一直A执行

 

注意i=0;i<=5;i++这个循环是执行6轮

 

结果

我是 threadB:Tue Jun 09 20:37:00 CST 2020
我是 threadA:Tue Jun 09 20:37:01 CST 2020
我是 threadB:Tue Jun 09 20:37:01 CST 2020
我是 threadB:Tue Jun 09 20:37:02 CST 2020
我是 threadA:Tue Jun 09 20:37:03 CST 2020
我是 threadA:Tue Jun 09 20:37:05 CST 2020
我是 threadA:Tue Jun 09 20:37:07 CST 2020

  

标签:Thread,threadA,子类,09,Jun,2020,CST,多线程,threadB
来源: https://www.cnblogs.com/lhywxhn/p/13080614.html