學習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()方法的內容。