JAVA多线程之男朋友和女朋友之间的故事

public class BoyFrienAndGirlFriend {

    public static void main(String[] args) {
        System.out.println("男朋友和女友之间有趣的故事....");
        Thread BoyFriend = new Thread(new BoyFriend());
        BoyFriend.start();
    }
}

class BoyFriend implements Runnable{
    public void run() {
        System.out.println("男朋友叫女朋友去洗澡....");
        //创建一个女朋友对象
        Thread GirlFriend = new Thread(new GirlFriend());
        //叫女朋友去洗澡
        GirlFriend.start();
        
        //在父类中,让子类执行完成后,自己在执行
        //当某个程序( 男朋友 )执行流中调用其他( 女朋友  )线程的 join() 方法时,
        //调用线程(  男朋友  )将被阻塞,直到 join() 方法加入的 join 线程执行完为止 
        
        //总结 谁调用 谁就会被阻塞 这了的谁  是指当前线程(男朋友)
        
        //join 方法实现了 接口的 插拔式:
        try {
            GirlFriend.join();
        } catch (InterruptedException e) {        }
        System.out.println("女朋友终于洗完了,男朋友很开心,很爽!!!!!");
}}

class GirlFriend implements Runnable{
    public void run() {
        System.out.println("女朋友去洗澡....");
        for (int i = 1; i <= 5; i++) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {            }
            System.out.println("你朋友洗澡第"+(i * 10)+"分钟...");
        }
        System.out.println("女朋友洗澡出来了......");
}}


class descreption{
    /**
     * 第一个版本
     * 
     * 男朋友和女友之间有趣的故事....
男朋友叫女朋友去洗澡....
女朋友终于洗完了,男朋友很开心,很爽!!!!!
女朋友去洗澡....
你朋友洗澡第10分钟...
你朋友洗澡第20分钟...
你朋友洗澡第30分钟...
你朋友洗澡第40分钟...
你朋友洗澡第50分钟...
女朋友洗澡出来了......

     */
    
    
    /**
     * 第二个版本
     * 
     * 
     * 男朋友和女友之间有趣的故事....
男朋友叫女朋友去洗澡....
女朋友去洗澡....
你朋友洗澡第10分钟...
你朋友洗澡第20分钟...
你朋友洗澡第30分钟...
你朋友洗澡第40分钟...
你朋友洗澡第50分钟...
女朋友洗澡出来了......
女朋友终于洗完了,男朋友很开心,很爽!!!!!
     * 
     */
}

 

posted @ 2018-05-22 20:41  马鞍山  阅读(289)  评论(0编辑  收藏  举报