运行效果图:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARMAAABXCAIAAACodTYhAAANy0lEQVR4Ae1dO3IdRxIENvYopAyFTgCdgFhnLbnyQJN05Mlcbx3SJA9CnoA8AUOGyLtgE8j3cvJV9fT0vM/GBFDPGGVnZWXVVHcLEMAQr+/v76/qUxOoCaycwD9W6kteE6gJPEygbk6dg5rAMRP45zFJjznX19enf6fXMQmhsPS2PeQYGixdmbFeQYkCTJeAuR6VWyC5DKTEDkY0rhdGonATqG2VEIDecTO9yMUJ7G5O2AnMfZHhBngB7lZIzAJn+lhW2TmfjKaVZIzC0Bn5ey4ElGWx53rKWhycc3qzMcrYQ+gkGDbT594rVy9mZALT15ywGVyGLWmSLKPdcp+QHpTNJUg4KJEgLJmIp3hi8iABFtuQpmMSrLgU6YksjaeTVCrkLYmcA01xMPRa7sNcjyqRgM9mCfcp3JnAdHMg0nzz6BH1QUtJa4Q82qnnPjCZyxIvoEIyVzoBlSIlCwACMUzBk6TnOoZeSwGZNAFlHTFCTBTAMrxs03mOzD4j7zXnVvziBA5uDtQ+biy1H9pUMMJ0l2axWEewaOtV2ACfTPSocBB4VugEIfoE3peyFfAosUKslQVgvJDjprhDMlcOzYoj79UpUaHOBOLNcak2A9tDPuwWSO2cJzZJF8wlukbVO2I1NidWJzxDtApVZEKxL6Gks/xlmK1COqvIjQ6e7m1krMQcAiOfE9+raV7kyAR6N8d3iF46RtpXHam5YlJCILGTzcQsCAxPDJ9wCFEuEcVH/sDgnWGIjEJhqXSVkLlC7tMnc/Wg17KpVA8eBVbzSgegRqGwdGXhIyYQb472Jnt5SDvXJD1XSpHcSyUGQH3OQjoT5eMax0Emfyb6UlkkQ6IKCUBPjZsoOg48XVjNDPookXpfyooknmIGzUu2OIF4czojZkib4dadLJcRB7Fsnfdz4A7iXUxB53xI7BpZkdRT5SRQukLjQCZIkY8Ai467BWXTRxVprqdyJVC6QgXGJxBvDjI5ax+rYwjCUjsxXnVRyRLsROKwFE+AlDmBd+hYibIKrya+CUbEI5qm+Qjp7+KYuV7a8YhzaRYnEG8ONkBTJnaGdnmTFsscJ0AnuXrHSp27xsngFpbIIpOfboioLy+EF6uc/b0u9CJP1XZ3c7QNAjw9eG0wwpyCNFz6HgtnMJ7r/sRyo8ncM8tGmDm3wKsrAQiyf8gKy6wPjMwF3EFiAUUzo1CBS0xg+gpzCffyrAk81QnUn5V+qjtb73XZCdTNuex8y/2pTqBuzlPd2Xqvy06gbs5l51vuT3UCdXOe6s7We112AnVzLjvfcn+qE9jdHPw2oP/R+0NGLIClYyn7IKSEpXKbfCC5DCQdQPY/uRD0mRTTAZ5IWWZWpXfECAXzsPRcDzl2TeG1E4i/CWU+5uu/iWuOGwLKRsS0dc/FRoPtor4pCBWDJ5Y5a+69sjIwnqiQl6BAIYHQpHiA0LCHGCVDh1CLob5DMKzl+AQO/vTN3JS1MdpjbRIBn4w2xUpsdjZXN5g3ZU5SrxIq6hpFAZqtUkArPuXjuU1MpfS5bic0Z5hNoBRJEJayEs8U8iAB1InEBVZN4ODmeCbnS0YHgmTYj7V7IGf6NN1ECnhvGWerrCEDpULnfS/ZAqiKgE+J3UovTeApQGLm5SYgsdsyynTH0hQ4egLTzeF8tUlhS1gApARHl5QJrGgigKX8RQrkigo1u5W5KoJpKl2QqwwybIb+fIIJ5dSwgFpqikO6d+IO4H2Ze/CocMfcCxVuTmB3czBNjZuT1XyZhqgYin0JzdHbEBJpK5K12IMqauldiSSgg9KlDCbikUWxBAT0oWf/KSs50FNZtKLMnxLMASbSTVgg8G6iTkbEnlh4cQK7m+OTBcbEnaELGYXCkhptFZZNnG1dhiwJxBOIZyFXismkZwHDyhkmklEoLN18rhPXsAe5MRSWQZ+jmWGKXgGCbOJMUAY9l3xTzyo8PoGD79Y8zWetEZPEU4ynAIt3jWNowjJkuSHcKMbT+VU45PrSu4Una60y74i9UEeGEF+zrwlRde586N81joPMHQqPT+DgN6GYLz/I38Pp/4ChiSMEzA+Uezh6uJk+3uIqpZoBUKK/i2MKoAQJzMbogKWs3Ed4EagQzfv6EY07qDcHEGjpYmKEMinm8+uH1F/f/xAj8FRDesHjwMHN8bk7prXvrh8LYXWAXBeLF0B0USOxQN+TMjXjYn8Xx0rxEu5ArOiqnlUIQA4jYK4Kffheasy7hbmWuRBCi518/et7TiTzVENz77vIt4942DxfEs89Wc/1YMJSjEy8S2ywm0DDpXiluyxjMuEZOvGlmuEJC8/gM7dkt8qVTIXmqkApTc4ikwUha1HQ8VHRAoMTmH62FhKwDYEZXDb3z3OzQLfCi4oUgIkL3HMOZ31m5nKP471bOuSK1OCpkIAXdYHzjmnVTHcZ8aAsJxaTJ9D+mpN1xdQEagI+gYP/zvFA4ZpATaAzgbo5neFUqCYwO4G6ObOjqUBNoDOBujmd4VSoJjA7gbo5s6OpQE2gM4G6OZ3hVKgmMDuB3c3BT/r7HxlARiyApeMczbmuybnSC8xpAq+lgBwK1ATOO4HGn5VGAZw8/oqNxZoHkb+n01NthVzxq0CuGBhvLzifpYHgWcuaQJjA9GelEZg7czymHtU5JuBTpzmQWCqk8k5SrxDFOUUC1wtT77bSF6gJnH0CBzfH3XUiQeook/TT6RhKLQXcM2PKsrhzbdQP3YJSy+yZqxdTEzh6AtPNCYdYR9CtQS6eSAiYIuAOIdSsIn3TIadQlnn5FKgJnH0Cu++jcPh08ubOq/MQ+xJtKZ0tBkNGSfpTYr1Y8BHfBOzBU8hQ7HwzvciawNETmC6MW/BwOyMcQmEJmZ9dLHF8pRGgTCfbeRVaC85isrZo6Z/tBA6+W/Mp4CBq6Ucc5OIZ1W1xE7mNgMVEtTTiVpqawNknMN0cWOs4+t3QISapp1qRQOkKjQOZsA1ZsRx9HIPxFAkI+JSJk4VrAmeZwMHN8bPomJX8IDpe7GNEPKIJhUJKuFdBXMuawHknMP3pGxxEfVBDGCDfIjL56c3lLI+OYDigelae7pw9i6kJrJrA7mtOPouZGfTVWRdA4lo36t0BJliu9RnsuWQ1gbUTaP9Lfa1L6WsCz20C03drz+3N631rAqdMoG7OKdOr3Oc7gbo5z3fv681PmUDdnFOmV7nPdwJ1c57v3tebnzKBujmnTK9yn+8Ejr85/89frRxdC4n9j3YeMmIBLB1LuQg8y3H2V4ksQ+jH+1/BX7/+7BV35EOAn4O/f4B/70Ar4h6FzzCB3c3Zb8PunzA+jsmJ7qN+nQxYGlr5MuOQ60uK8ctT/4AMy+wJAXzA4wmcBZdgVHRv/nAFfr/67W6/Pvjnzbvv02t8efNiF0TO7TeFvr+7evvy8NYdmNTitAlMX3Omvdj/ZTI8N+RZRdjFIl3TEUCWo8Fk/KWaViGdNyGQbANPjwJzqSdBzp1joEdLjBJnBzCB5FLk59e3V5/uv7z5aa5Ki//x97erq19+2t+jF//67ebq29+NvxCnlVzc2gm0/8Qn9x4bqUMAX8faY9ZDyKMglSsQBLlRKT2kQgKILlq5Q8DZB24k8ZSz4+AwuJQD/eksEibAtHKSzKsP968Gy0yyF2/+vHt7e3uNO/fh1dXn1y/ffr379GV/kSZdobNMYPqaQzs/OmCwqfyoGJbQ+EchBxBA6Uwf09Y1Xgj8YkXPdUwfNdP0AckSnpgxTOSTo2AUBaAnZcAeImYnELiyaRvJr29fwuLxc/DtGC7c/ae7j7cPkYcvWg83qD4XmkC8OV6GW+v7ih3BEk/JyGhJQIEnBkFYZpPMhBQtocwfj7INtR3EUJIhCEuEZLUIINYrqxyzFFIzwY09jJR78eYLTHafx2sy/Yjg4acHu//S4QU6uFehZC1Pm0Dv5sA57CU2DCSe2mkyoQcKArlq2bRtOkCZP1IiFHAQI0qGICw93UPA+RPEWeCMBggSWF25Zhm/+vDp7mr/9xD+eP/74/dnjz8xwJcfhD7e1t1ZnuJxinhzwlVxU22277STEGspLMCQGy7i7AZmMSsIZMLcsKRYoZB79qUXCjeWoZUVH38qsMv5/tfXq5ufX8rh1b/bP5mToMApE4g3R9uZTT2k80eZQgR6IiosTXaeY5TrPnPiDt/3wbtAwBL+Xo5pTqZTaDGkQgReVMyiiQSPX2Vu3v3B/5p5+fPN1de3/93/9ufH+/98PLhJSitwlglgw7hn4flI784T8TgTlOzTTQKGIDBhOScY4Vm9+fQqc1ZBsyiTQAAOGWfGZd/f3UBw8Nn/Dgffg02fPblv8jDvDj8jqM+lJrD71y3/vYsndgWluDcixYCnZtq8R+QCaTIZGJmwkJYZzAmazTC9WSv4+JJ47plbmmPkKQBlwGDYHnhiClw251/8Riaw+32OzpmAdhGMMJuWhktE9TLEQaCs4APec2XS5INSJQSa6SGr6eyJ58L5Td0ZPbMxNS/GZYW3PIHpB6lb7rJ6qwlsbQLxJwRb66/6qQlscwJ1c7a5L9XV1idQN2frO1T9bXMCdXO2uS/V1dYnUDdn6ztU/W1zAnVztrkv1dXWJ1A3Z+s7VP1tcwJ1c7a5L9XV1idQN2frO1T9bXMCdXO2uS/V1dYnUDdn6ztU/W1zAnVztrkv1dXWJ1A3Z+s7VP1tcwJ1c7a5L9XV1ifwP0BbfAWyLtnJAAAAAElFTkSuQmCC" 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();
}
}
- java线程基础巩固---分析Thread的join方法详细介绍,结合一个典型案例
关于Thread中的join方法貌似在实际多线程编程当中没怎么用过,在当初学j2se的时候倒时去学习过它的用法,不过现在早已经忘得差不多啦,所以对它再复习复习下. 首先先观察下JDK对它的介绍: 其实 ...
- 线程状态以及sleep yield wait join方法
前言 在日常的开发过程中,我们通过会使用Thread.sleep模拟一个耗时的任务执行过程. 在深入理解这四个方法之前,首先对线程的状态进行理解阐述. 线程概念 线程是操作系统执行任务的基本单位,处理 ...
- 线程中的join方法
join方法的作用是同步线程. 1.不使用join方法:当设置多个线程时,在一般情况下(无守护线程,setDeamon=False),多个线程同时启动,主线程执行完,会等待其他子线程执行完,程序才会退 ...
- Java并发编程之线程生命周期、守护线程、优先级、关闭和join、sleep、yield、interrupt
Java并发编程中,其中一个难点是对线程生命周期的理解,和多种线程控制方法.线程沟通方法的灵活运用.这些方法和概念之间彼此联系紧密,共同构成了Java并发编程基石之一. Java线程的生命周期 Jav ...
- 多线程入门-第六章-线程的调度与控制之join
/* 线程合并:将指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程,即单线程. 如在B线程中调用了A的join方法,则线程A执行完后,才会执行线程B. */ public cla ...
- java基础知识回顾之java Thread类学习(十)--线程的状态以及转化使用的方法介绍
线程的概述: 线程是程序的多个执行路径,执行调度的单位,依托于进程存在.线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间叫做线程栈,是建立线程的时候由系 ...
- 多线程之join方法
join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方 ...
- 模拟做饭系统(java+线程中的join方法)
(一)项目框架分析 妈妈要去做饭,发现没有酱油,让儿子去买酱油,然后回来做饭. 根据面向对象的思想,有两个对象,妈妈和儿子 主要有两个方法: (一)没有线程控制(即儿子没有买酱油回来妈妈就做好饭了)+ ...
- 线程join方法详解
执行逻辑:在当前代码块(比如main方法)中的线程A执行了join方法, 那么当代码块(main)执行到join方法时,会停止继续向下执行,一直到线程A执行完毕, main方法才会继续向下执行. 代码 ...
随机推荐
- akoj-1267-独木舟上的荡漾
独木舟上的荡漾 Time Limit:1000MS Memory Limit:65536K Total Submit:76 Accepted:44 Description 进行一次独木舟的旅行活动, ...
- [HEOI2015]兔子与樱花 树规+贪心
鬼能想到是个贪心.明明觉得是树规啊..又完美爆零.. 从叶子节点往上更新,能保证最优解(这块想了半天). 证明:当你的子树上有能删的点而你不删时,可能会对子树的根节点有利,最好的情况是使子树根节点由不 ...
- TestNG的组测试和组中组测试
在编写测试的过程中,我们经常遇到只想执行个别或者某一部分/某一类型的测试用例,这时我们可以使用TestNG的分组测试方法 分组测试在配置时,TestNG执行的原则是:只保留最小集合进行执行 看代码: ...
- 扩展Python模块系列(一)----开发环境配置
本系列将介绍如何用C/C++扩展Python模块,使用C语言编写Python模块,添加到Python中作为一个built-in模块.Python与C之间的交互目前有几种方案: 1. 原生的Python ...
- shell 字符串
字符串可以分为单引号,双引号,也可以不用引号 单引号 str='this is string' 单引号字符的限制: 单引号中的任何字符都会原样输出,单引号中变量是无效的 单引号中不能出现单引号 双引号 ...
- oracle 11gR2 RAC安装手册
--oracle 11gR2 RAC安装手册 -----------------------------2013/10/29 参考三思笔记 http://files.cnblogs.com/jackh ...
- 关于JS的DOM操作——重要实例的操作
1.复选框与按钮的配合使用的DOM操作 <body> <input type="checkbox" id="ckb1&qu ...
- Ubuntu下Apache中部署Django
环境:ubuntu12.04 server | apache2 | django1.6 | python2.7 | mod_wsgi 1. 安装apache2: sudo apt-get instal ...
- 关于PHP函数的操作
<?php//简单函数function show(){ echo "hello"; }show(); //有参数的函数function show($a){ ...
- Thinking in Java系列 文档+代码+简评
声明:本人无意侵犯原作者的版权,这里可下载的文档都属于作者自行开放下载的,统一放置在这里是因为不可预测的原因使得原文档和代码不方便下载,故将我所收集的内容统一在这里,如果这里的内容侵犯了别人,请告知我 ...