java多執行緒

vast_joy發表於2024-10-18

學習java多執行緒

package com.haole.testdemo1;


class RunnableDemo3 implements Runnable{
    private String name;

    private Thread x;

    RunnableDemo3(String a){
        name=a;
    }

    @Override
    public void run() {
        for (int i = 0; i < 4; i++) {
            System.out.println("執行緒:"+name+" "+"迴圈編號"+i);
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
    public void start(){
        if (x==null){
            x=new Thread(this,name);
            x.start();
        }
    }
}
public class Test {
    public static void main(String[] args) {
        RunnableDemo3 runnableDemox = new RunnableDemo3("x");
        RunnableDemo3 runnableDemoy = new RunnableDemo3("y");
        runnableDemox.start();//注意這裡不能寫run()
        runnableDemoy.start();
    }
}

    

直接呼叫run()方法,會像普通方法一樣在當前執行緒中順序執行run()方法的內容,這並不會啟動一個新的執行緒。也就是這裡是順序執行,不是非同步執行。

呼叫start()方法會建立一個新的執行緒,並在新的執行緒中並行執行run()方法的內容。

image-20241018164806892

相關文章