1. 程式人生 > 實用技巧 >Runnable和Thread

Runnable和Thread

繼承Thread類

  • 子類繼承Thread類具備多執行緒能力
  • 啟動執行緒:子類物件.start()
  • 不建議使用:避免OOP單繼承侷限性

實現Runnable介面

  • 實現介面Runnable具有多執行緒能力
  • 啟動執行緒: 傳入目標物件+Tread物件 .start()
  • 推薦使用:避免單繼承侷限性,靈活方便,方便同一物件被多個執行緒使用
package DemoThread;
//多個執行緒同時操作同一個物件
//買火車票的例子
public class TestThread02 implements Runnable{
    //票數
    private int ticketNums=10;

    @Override
    
public void run() { while (true) { if(ticketNums<=0){ break; } try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()
+ "-->拿到了第" + ticketNums-- + "票"); } } public static void main(String[] args) { TestThread02 testThread02=new TestThread02(); new Thread(testThread02,"阿優").start(); new Thread(testThread02,"大黃").start(); new Thread(testThread02,"小柔").start(); } }