java中join的使用

java中join的使用

講一下join的使用

你把join寫在哪個線程體當前的線程體就被阻塞了。

關鍵我們就是要搞清楚誰被阻塞了。

yeild和sleep是靜態方法 而join是對象的方法所以要new一個對象才可以去調用

<code>package cn.jd.state;



/*
* join:合併線程,但是理解成插隊線程更符合
*/
public class BlockedJoin02 {
\tpublic static void main(String[] args) throws InterruptedException {
\t\tSystem.out.println("媽媽給女兒買麻辣燙的故事"); //媽媽只有給女兒買到女兒才可以吃
\t\tnew Thread(new Girl()).start();
\t\t
\t}

}
class Girl extends Thread{
\t@Override
\tpublic void run() {
\t\tSystem.out.println("我想吃麻辣燙了,媽媽你給我去買吧");
\t\tThread t=new Thread(new Mother()); //join的調用必須實例化對象才可以
\t\tt.start();
\t\ttry {
\t\t\tt.join();
\t\t\tSystem.out.println("我狼吐虎咽的吃");
\t\t} catch (InterruptedException e) {
\t\t\t// TODO Auto-generated catch block
\t\t\te.printStackTrace();
\t\t}
\t\t
\t}
}
class Mother extends Thread{
\t@Override
\tpublic void run() {
\t\tSystem.out.println("媽媽去給你買");
\t\ttry {
\t\t\t
\t\t\tThread.sleep(1000*6);
\t\t\tSystem.out.println("6秒過去了");
\t\t\t
\t\t} catch (InterruptedException e) {
\t\t\t
\t\t\te.printStackTrace();
\t\t}
\t\tSystem.out.println("媽媽給你買到了");
\t}
}




\t





/<code>



分享到:


相關文章: