Java實現多線程有兩種方式:
1.繼承Thread類,重寫run方法
package com.bjdata.test;public class ThreadTest extends Thread{ String name=""; public ThreadTest(String n){ name=n; } public void run(){ for(int i=0;i<6;i++){ System.out.println(name+":hello:"+i); } } public static void main(String[] args) { ThreadTest test1=new ThreadTest("A"); ThreadTest test2=new ThreadTest("B"); test1.start(); test2.start(); }}
注意:程式啟動並執行時候調用的是start方法,而不是run方法
第一次運行結果:
A:hello:0B:hello:0B:hello:1B:hello:2B:hello:3B:hello:4B:hello:5A:hello:1A:hello:2A:hello:3A:hello:4A:hello:5
第二次運行結果:
B:hello:0B:hello:1B:hello:2B:hello:3B:hello:4B:hello:5A:hello:0A:hello:1A:hello:2A:hello:3A:hello:4A:hello:5
兩次運行結果不一致,說明我們的目的達到了
2.實現Runnable
package com.bjdata.test;public class RunableTest implements Runnable{ String name=""; public RunableTest(String n){ name=n; } public void run(){ for(int i=0;i<6;i++){ System.out.println(name+":hello:"+i); } } public static void main(String[] args) { RunableTest test1=new RunableTest("A"); RunableTest test2=new RunableTest("B"); Thread thread1=new Thread(test1); Thread thread2=new Thread(test2); thread1.start(); thread2.start(); }}
第一次運行結果
A:hello:0A:hello:1A:hello:2A:hello:3A:hello:4A:hello:5B:hello:0B:hello:1B:hello:2B:hello:3B:hello:4B:hello:5
第二次運行
A:hello:0A:hello:1A:hello:2B:hello:0B:hello:1B:hello:2B:hello:3B:hello:4B:hello:5A:hello:3A:hello:4A:hello:5
注意:運行時,要先建立Thread對象,把需要多線程啟動並執行案例傳進去,然後調用Thread的run方法