zoukankan      html  css  js  c++  java
  • 联合线程(案例顾客买蛋糕 :使用join()方法)

    运行效果图:

     
     
    代码:
    package com.niit.syntronized;
    
    /**
     * @author: Annie
     * @date:2016年6月15日
     * @description:线程联合(顾客到蛋糕店买蛋糕)使用join()方法
     */
    public class ThreadJoin implements Runnable{
    
        Thread joinThread;
        Cake cake;
        public void setThread(Thread t){
            joinThread =t;
        }
        @Override
        public void run() {
            if(Thread.currentThread().getName().equals("顾客")){
                System.out.println(Thread.currentThread().getName()+"正在等待"+joinThread.getName()+"制作生日蛋糕");
                try {
                    joinThread.start();
                    joinThread.join();
                } catch (InterruptedException e) {}
                
                System.out.println(Thread.currentThread().getName()+"买了生日蛋糕:价钱" + cake.price);
                
            }else if (Thread.currentThread()==joinThread){
                System.out.println(Thread.currentThread().getName()+"开始制作蛋糕,请耐心等待.........");
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                cake = new Cake("生日蛋糕",158);
                System.out.println(joinThread.getName()+"制作完毕");
            }
            
        }
        
        class Cake {
            int price;
            String name;
            
            public Cake(String name,int price) {
                this.price = price;
                this.name = name;
            }
            
        }
        
        public static void main(String[] args) {
            ThreadJoin threadJoin = new ThreadJoin();
            Thread customer = new Thread(threadJoin);
            customer.setName("顾客");
            Thread cakeMake = new Thread(threadJoin);
            cakeMake.setName("蛋糕");
            threadJoin.setThread(cakeMake);
            customer.start();
        }
    }
  • 相关阅读:
    .Net需要掌握的知识
    图片轮播
    vector
    2016ACM青岛区域赛题解
    总是有一个程序的bug没找到
    poj1001_Exponentiation_java高精度
    poj2236_并查集_Wireless Network
    poj1703_Find them, Catch them_并查集
    poj2492_A Bug's Life_并查集
    poj1182食物链_并查集_挑战程序设计竞赛例题
  • 原文地址:https://www.cnblogs.com/wangmingxia/p/5587704.html
Copyright © 2011-2022 走看看