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