java 多執行緒入門

2021-07-22 09:51:26 字數 2982 閱讀 3280

繼承thread類

實現runnable介面(優先選擇)

public

class

testthread1

}}//class runner1 implements runnable

}}

public

class

testthread2

}//class runner1 implements runnable

}}

public

class

testthread3

}system.out.println("main over");

r3.shutdown(); //正常終止子執行緒

}}class

runner3

implements

runnable

}public

void shutdown()

}

public

class

testthread4

}}class

runner5

extends

thread

}}

1 yield()方法:給其他執行緒可以執行的機會

public

class

testyield

}class

mythread3

extends

thread

public

void run() }}

}

2 join()方法:將多個執行緒合併,相當於方法呼叫

public

class

testjoin catch (interruptedexception e)

for(int i = 0; i < 10; i++)

}}class

mythread2

extends

thread

public

void run() catch (interruptedexception e) }}

}

3 interrupt()方法:終止子執行緒, 該方法比較暴力,建議少用

public

class

testinterrupt catch (interruptedexception e){}

mythread.interrupt(); //中斷,拋異常,子執行緒結束

}}class

mythread

extends

thread catch (interruptedexception e) }}

}

public

class

testpriority

}class

t1implements

runnable

}}class

t2implements

runnable

}}

//死鎖

public

class

testdeadlock

implements

runnable catch (interruptedexception e)

synchronized (o2) }}

if(flag == 2) catch (interruptedexception e)

synchronized (o1) }}

}public

static

void

main(string args)

}

//生產者消費者問題

public

class

producerconsumer

}//饅頭

class

wotou

public string tostring()

}//容器

class

syncstack catch (interruptedexception e)

}this.notify(); //喚醒乙個當前物件的被鎖住的執行緒

arrwt[index] = wt;

index++;

}//拿出饅頭

public synchronized wotou pop() catch (interruptedexception e)

}this.notify();

index--;

return arrwt[index];

}}//生產者有乙個容器的引用,這樣才知道生產出來的饅頭放在何處

class

producer

implements

runnable

public

void run() catch (interruptedexception e) }}

}//消費者有乙個容器的引用,這樣才知道從**拿饅頭

class

consumer

implements

runnable

public

void run() catch (interruptedexception e) }}

}

//面試題

public

class

ttimplements

runnable

public

void

m2()

public

void

run() catch (exception e)

}

JAVA多執行緒入門

就緒 runnable 呼叫start 方法 執行 running 處於就緒狀態的執行緒獲得cpu,開始執行run 方法體 阻塞 blocked 執行緒呼叫sleep 方法主動放棄所占用的處理器資源 執行緒呼叫了乙個阻塞式的io方法 執行緒試圖獲得乙個同步監視器,但該監視器被其他執行緒所持有 執行緒...

Java多執行緒入門教程

死亡狀態 dead 執行緒執行完了或者因異常退出了run 方法,該執行緒結束生命週期。修飾普通方法 獲得this物件鎖 synchronized public void synchronized public static void public void 當多個執行緒同時訪問同乙個物件加x鎖的方法...

Java 高階 多執行緒快速入門

這世上有三樣東西是別人搶不走的 一是吃進胃裡的食物,二是藏在心中的夢想,三是讀進大腦的書 system.out.println 多執行緒建立開始 thread thread new thread new runnable thread.start system.out.println 多執行緒建立結...