thread多线程循环打印输出

代码实现:

/**
 * 本线程类的功能是进行循环输出操作
 * 所有的线程与进程是一样的,都必须轮流去抢占资源,多线程执行应该是多个线程彼此交替执行
 * 也就是说如果直接调用了run()方法,那么并不能启动多线程
 * 多线程启动的唯一方式就是thread类中的start方法:public void start()(调用此方法执行的方法体是run方法定义的)
 */

/**
 * 如果某一个线程对象重复进行了启动,那么就会抛出此异常IllegalThreadStateException
 *
 * 使用Thread类的start()方法不仅仅要启动多线程的执行代码,还要去根据不同的操作系统进行资源的分配。
 */
class MyThread extends Thread{
    private String name;
    public MyThread(String name){
        this.name = name;
    }
    @Override
    public void run() {//复写run方法,作为线程的主体操作方法
        for(int x = 0 ; x < 200 ; x++){
            System.out.println(this.name + "--> " + x);
        }
    }
}
public class TestDemo {//主类

    public static void main(String[] args) {
        MyThread my1 = new MyThread("线程A");
        MyThread my2 = new MyThread("线程B");
        MyThread my3 = new MyThread("线程C");

//        my1.run();
//        my2.run();
//        my3.run();

        //my1.start();//此时每一个线程对象交替执行
        my1.start();
        my2.start();
        my3.start();
    }

}

运行结果(部分):

线程B--> 0
线程B--> 1
线程B--> 2
线程A--> 0
线程A--> 1
线程C--> 0
线程A--> 2
线程A--> 3
线程A--> 4
线程A--> 5
线程B--> 3
线程A--> 6
线程C--> 1
线程A--> 7
线程A--> 8
线程A--> 9
线程A--> 10

📢注意事项:

不能同一个对象,启动2个start方法,会抛异常,题主开始就犯了这个错误,故注释掉多余的my1线程就OK了
posted @ 2022-03-18 15:04  Java成长之路^  阅读(336)  评论(0)    收藏  举报