1.效果圖:
2.代碼:
//可以繼承Thread重寫run函數public class MultipleThreadStudy extends Thread { /* MultipleThreadStudy(){} MultipleThreadStudy(String name){ super(name); }*/ //重寫Thread的run函數 public void run(){ for(int i=0;i<10;i++) { System.out.PRint("MultipleThreadStudy:i="+i); try { Thread.sleep((int)Math.random()*1000); } catch(Exception e) { e.printStackTrace(); } System.out.println(""); } } //******************************************多線程********************************************************* //不論是用繼承的Thread方法還是用Runnable接口實現的方法,java里面的多個線程同時運行時,不是順序執行,而是并行執行 //如果需要順序執行,則需加判斷前一個線程是否執行完畢 //如果要順序執行,方法一:判斷線程isAlive是否在運行中,不停循環直至結束 //方法二:調用join方法 //快捷鍵注釋代碼:Ctrl+Shift+/ (/* */ 形式的) 或 Ctrl+/ (// 形式的) //快捷鍵取消注釋:Ctrl+Shift+/ (/* */ 形式的) 或 Ctrl+/ (// 形式的) public static void main(String[] args) { //************繼承Thread重寫run函數的線程*************** MultipleThreadStudy thread1=new MultipleThreadStudy(); MultipleThreadStudy thread2=new MultipleThreadStudy(); MultipleThreadStudy thread3=new MultipleThreadStudy(); //thread1.setPriority(1); //設置優先級 //thread2.setPriority(2); //thread3.setPriority(3); System.out.println("............thread1 run..............."); thread1.start(); //方法一:判斷線程isAlive是否在運行中,不停循環直至結束 while(thread1.isAlive()) { try { Thread.sleep(100); } catch(Exception e) { e.printStackTrace(); } } System.out.println("............thread2 run..............."); thread2.start(); while(thread2.isAlive()) { try { Thread.sleep(100); } catch(Exception e) { e.printStackTrace(); } } System.out.println("............thread3 run..............."); thread3.start(); while(thread3.isAlive()) { try { Thread.sleep(100); } catch(Exception e) { e.printStackTrace(); } } //************實現Runnable的接口方法run函數************* Runnable rb1=new RunnableThread(); Runnable rb2=new RunnableThread(); Runnable rb3=new RunnableThread(); Thread runnableThread1=new Thread(rb1);//鼠標移到Thread,按alt+/的方式看需傳的參數 Thread runnableThread2=new Thread(rb2); Thread runnableThread3=new Thread(rb3); System.out.println("...runnableThread1 run..."); runnableThread1.start(); //方法二:調用join方法 try { runnableThread1.join(); } catch(Exception e) { e.printStackTrace(); } System.out.println("...runnableThread2 run..."); runnableThread2.start(); try { runnableThread2.join(); } catch(Exception e) { e.printStackTrace(); } System.out.println("...runnableThread3 run..."); runnableThread3.start(); }}//可以實現Runnable的接口方法run函數class RunnableThread implements Runnable{ public void run(){ for(int i=0;i<10;i++) { System.out.print("RunnableThread:i="+i); try { Thread.sleep((int)Math.random()*1000); } catch(Exception e) { e.printStackTrace(); } System.out.println(""); } }}
新聞熱點
疑難解答