java中的多線程 Java是少數的幾種支持“多線程”的編程語言之一。大多數的編程語言只能順序運行多個單獨程式塊,無法同時運行不同的多個程式塊。java的“多線程”恰可以彌補這個缺憾,它可讓不同的程式塊併發執行,如此一來就可讓程式塊運行得更為流暢,同時也可達到多任務處理的目的。 先看一下單線程的情況 ...
java中的多線程
Java是少數的幾種支持“多線程”的編程語言之一。大多數的編程語言只能順序運行多個單獨程式塊,無法同時運行不同的多個程式塊。java的“多線程”恰可以彌補這個缺憾,它可讓不同的程式塊併發執行,如此一來就可讓程式塊運行得更為流暢,同時也可達到多任務處理的目的。
先看一下單線程的情況:
public class ThreadDemo_1 { public static void main(String[] args) { TestThread.run(); for(int i=0;i<5;i++){ System.out.println("main線程在運行"); } } static class TestThread{ public static void run(){ for(int i=0;i<5;i++){ System.out.println("TestThresd在運行"); } } } }
從這個例子可以看出,想要運行main方法中的for迴圈,必須要等TestThread類中的run()方法執行完,即使後面的方法不依賴於前面的方法。這就是單線程的缺陷。
通過繼承Thread類實現多線程:
public class ThreadDemo_2 { public static void main(String[] args) { new TestThread().start(); for(int i=0;i<5;i++){ System.out.println("main線程在運行"); try { Thread.sleep(1000); } catch(InterruptedException e){ e.printStackTrace(); } } } } class TestThread extends Thread{ public void run(){ for(int i=0;i<5;i++){ System.out.println("TestThresd在運行"); try { Thread.sleep(1000); } catch(InterruptedException e){ e.printStackTrace(); } } } }
需註意一點,多線程的執行順序具有不確定性。另外還可以通過Runnable介面實現多線程。