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>



分享到:


相關文章: