多线程01.newThread的方式创建线程

1.java应用程序的main函数是一个线程,是被jvm启动的时候调用,线程的名字叫main
2.实现一个线程,必须创建一个thread实例,override run方法,并且调用start方法。
3.在jvm启动后,实际 上有多个线程,但是至少有一个非守护线程。
4.当你调用一个线程start方法的时候,此时至少有两个线程,一个是调用你的线程,还有一个是执行run方法的线程
5.线程的生命周期分为new,runnable,running,block,termate.
复制代码
public class Mythread {
    public static void main(String[] args) {

        //使用匿名内部类的方式执行多线程
     Thread th1= new Thread("custom"){
         @Override
         public  void run(){
        for(int i=0;i<100;i++){
            System.out.println(Thread.currentThread().getName()+"使用匿名内部类的方式创建多线程=>"+i);
        }
         }

     };//start调用了底层c++的方法,重写run方法,使用的是模板方法模式。
     th1.start();
        th1.start();//不能调用start两次
        for(int i=0;i<100;i++){
            System.out.println(Thread.currentThread().getName()+"使用普通的main进行打印=>"+i);
        }


    }
}
复制代码

模板方法模式案例:

复制代码
public abstract class TemplateMethod {
    public final  void print(String message){
        System.out.println("###################");
        wrapPrint(message);
        System.out.println("###################");
    }

    protected abstract void wrapPrint(String message);

    public static void main(String[] args) {
        TemplateMethod t1=    new TemplateMethod(){
            @Override
            protected  void wrapPrint(String message){
                System.out.println("##"+message+"##");
            };
        };
        t1.print("hello thread");
    }
}
复制代码

 

posted @   三号小玩家  阅读(10402)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
Title
三号小玩家的 Mail: 17612457115@163.com, 联系QQ: 1359720840 微信: QQ1359720840

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示