Java 兩種實現多線程的區別
阿新 • • 發佈:2018-08-23
的區別 runnable ticket 解決 sys system ava div []
1,繼承 Thread(各自賣10張票)
class MyThread extends Thread{ private int ticket = 10; public void run() { for(int i = 0; i < 10; i++) { if(this.ticket > 0) { System.out.println("正在賣第" + (this.ticket--) + "張票"); } } } } public class Test1 {public static void main(String[] args) { MyThread mt1 = new MyThread(); MyThread mt2 = new MyThread(); MyThread mt3 = new MyThread(); mt1.start(); mt2.start(); mt3.start(); } }
2,實現 Runnable(一起賣10張票)
class MyThread implements Runnable{ privateint ticket = 10; public void run() { for(int i = 0; i < 10; i++) { if(this.ticket > 0) { System.out.println("正在賣第" + (this.ticket--) + "張票"); } } } } public class Test1 { public static void main(String[] args) { MyThread mt= new MyThread(); // 3 個線程同時占用著 mt new Thread(mt).start(); new Thread(mt).start(); new Thread(mt).start(); } }
區別:
1,Runnable 解決了單繼承問題
2,Runnable 更好描述共享資源
Java 兩種實現多線程的區別