標籤:sys col 技術分享 art his public tar bubuko 分享圖片
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{ 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 mt = new MyThread(); // 3 個線程同時佔用著 mt new Thread(mt).start(); new Thread(mt).start(); new Thread(mt).start(); }}
區別:
1,Runnable 解決了單繼承問題
2,Runnable 更好描述共用資源
Java 兩種實現多線程的區別