java多线程

学习java多线程

package com.haole.testdemo1;


class RunnableDemo3 implements Runnable{
    private String name;

    private Thread x;

    RunnableDemo3(String a){
        name=a;
    }

    @Override
    public void run() {
        for (int i = 0; i < 4; i++) {
            System.out.println("线程:"+name+" "+"循环编号"+i);
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
    public void start(){
        if (x==null){
            x=new Thread(this,name);
            x.start();
        }
    }
}
public class Test {
    public static void main(String[] args) {
        RunnableDemo3 runnableDemox = new RunnableDemo3("x");
        RunnableDemo3 runnableDemoy = new RunnableDemo3("y");
        runnableDemox.start();//注意这里不能写run()
        runnableDemoy.start();
    }
}

    

直接调用run()方法,会像普通方法一样在当前线程中顺序执行run()方法的内容,这并不会启动一个新的线程。也就是这里是顺序执行,不是异步执行。

调用start()方法会创建一个新的线程,并在新的线程中并行执行run()方法的内容。

image-20241018164806892

posted @ 2024-10-18 20:02  vast_joy  阅读(9)  评论(0编辑  收藏  举报