标签: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"); } }
标签:abs 匿名 jvm getname sys 线程的生命周期 sage ati final
原文地址:https://www.cnblogs.com/q1359720840/p/10647758.html