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 @   vast_joy  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示