运行效果图:

aaarticlea/png;base64,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" alt="" />
 
 
代码:
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();
}
}

联合线程(案例顾客买蛋糕 :使用join()方法)的更多相关文章

  1. java线程基础巩固---分析Thread的join方法详细介绍,结合一个典型案例

    关于Thread中的join方法貌似在实际多线程编程当中没怎么用过,在当初学j2se的时候倒时去学习过它的用法,不过现在早已经忘得差不多啦,所以对它再复习复习下. 首先先观察下JDK对它的介绍: 其实 ...

  2. 线程状态以及sleep yield wait join方法

    前言 在日常的开发过程中,我们通过会使用Thread.sleep模拟一个耗时的任务执行过程. 在深入理解这四个方法之前,首先对线程的状态进行理解阐述. 线程概念 线程是操作系统执行任务的基本单位,处理 ...

  3. 线程中的join方法

    join方法的作用是同步线程. 1.不使用join方法:当设置多个线程时,在一般情况下(无守护线程,setDeamon=False),多个线程同时启动,主线程执行完,会等待其他子线程执行完,程序才会退 ...

  4. Java并发编程之线程生命周期、守护线程、优先级、关闭和join、sleep、yield、interrupt

    Java并发编程中,其中一个难点是对线程生命周期的理解,和多种线程控制方法.线程沟通方法的灵活运用.这些方法和概念之间彼此联系紧密,共同构成了Java并发编程基石之一. Java线程的生命周期 Jav ...

  5. 多线程入门-第六章-线程的调度与控制之join

    /* 线程合并:将指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程,即单线程. 如在B线程中调用了A的join方法,则线程A执行完后,才会执行线程B. */ public cla ...

  6. java基础知识回顾之java Thread类学习(十)--线程的状态以及转化使用的方法介绍

       线程的概述:         线程是程序的多个执行路径,执行调度的单位,依托于进程存在.线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间叫做线程栈,是建立线程的时候由系 ...

  7. 多线程之join方法

    join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方 ...

  8. 模拟做饭系统(java+线程中的join方法)

    (一)项目框架分析 妈妈要去做饭,发现没有酱油,让儿子去买酱油,然后回来做饭. 根据面向对象的思想,有两个对象,妈妈和儿子 主要有两个方法: (一)没有线程控制(即儿子没有买酱油回来妈妈就做好饭了)+ ...

  9. 线程join方法详解

    执行逻辑:在当前代码块(比如main方法)中的线程A执行了join方法, 那么当代码块(main)执行到join方法时,会停止继续向下执行,一直到线程A执行完毕, main方法才会继续向下执行. 代码 ...

随机推荐

  1. 转换Json中的时间戳为标准时间格式

    //出自http://www.cnblogs.com/ahjesus function ConvertJSONDateToJSDate(jsonDate) {        ///    <su ...

  2. mysql创建定时任务,每月1号删除上月数据

    1.创建存储过程: CREATE DEFINER=`gzy`@`%` PROCEDURE `delLastMonth`() BEGIN DECLARE lastmonth int; SET lastm ...

  3. Xmemcached学习笔记

    memcached有三种java客户端 第一种:Com.danga 包下面的memcached,需引入jar(本人用的是memcached-2.5.2.jar 文末附上附件需要的可以下载) 第二种:s ...

  4. Linux - 简明Shell编程01 - 第一个脚本(HelloShell)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "hell ...

  5. Git基础命令的使用

    当前git版本: git version 2.9.2.windows.1 1.创建一个能与git服务器连接的本地git库 本地:  git init git status (-s) git add . ...

  6. Vue组件选项props

    前面的话 组件接受的选项大部分与Vue实例一样,而选项props是组件中非常重要的一个选项.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props ...

  7. owncloud存储云服务搭建

    owncloud是一款开源的存储云,用php写的,其作用可以像百度网盘那样存放文件到这个云当中, 只要能连上网,手机,平板,电脑都可以从中下载或者上传文件,用起来非常还不错,部署的过程也很简单,废话不 ...

  8. Go指针

    Go 语言指针 Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务. 接下来让我们来一步步学习 Go 语言指针. 我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地 ...

  9. 新入门的小白,整理一下特别简单实用的div+css兼容性的问题。

    最近整理了一下特别简单的div+css的不同浏览器的兼容性的问题,跟大家分享一下,只适合刚入门的新手,欢迎大牛们给提出意见. 1. 默认的内外边距不同 问题: 各个浏览器默认的内外边距不同 解决: * ...

  10. 在 Android 中如何优雅地配置私密信息

    在实际的项目开发中,经常会用到一些第三方的 SDK ,而使用这些 SDK 基本上都是需要配置 APPKEY 或 APPSECRET 等信息.此外 APP 打包时需要 KEYSTORE , STOREP ...