码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-04-03 12:49:08      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:abs   匿名   jvm   getname   sys   线程的生命周期   sage   ati   final   

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");
    }
}

 

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

标签:abs   匿名   jvm   getname   sys   线程的生命周期   sage   ati   final   

原文地址:https://www.cnblogs.com/q1359720840/p/10647758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!