联合线程(案例顾客买蛋糕 :使用join()方法)
2016-06-15 15:35
375 查看
运行效果图:
代码:
代码:
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(); } }
相关文章推荐
- Akka学习笔记:Actor消息传递(1)
- 【leetcode】232. Implement Queue using Stacks
- Cocos2d-Lua之函数
- C#点击只打开一个窗体
- JAVA_枚举
- HDU 3486 RMQ+二分
- android 中导入第三方jar包
- Android取消沉浸式状态栏
- Java web项目中读取properties,xml文件
- Android Studio错题记录
- FreeMarker指令
- 经常用到的视觉差parallax
- Android利用Intent启动和关闭Activity
- 安卓开发中Theme.AppCompat.Light的解决方法
- 【Android】Android Camera实时数据采集及通过MediaCodec硬编码编码数据的流程
- rsyslogd配置文件详解
- SaltStack 入门(赵班长)
- seo优化urlrewrite伪静态技术
- java获取随机字母数字组合
- kubernets 架构设计 第3章 网络