A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© an3077458 中级黑马   /  2015-9-17 22:09  /  482 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求一篇经典的好理解的多线程代码

6 个回复

倒序浏览
难度有点大
回复 使用道具 举报
老毕讲的卖票系统通俗易懂,可以去下来看看
回复 使用道具 举报
我们还没有学到那地方
回复 使用道具 举报
package cn.com.cxsw.lesson19;  import java.util.Stack;  /**  * @Author 陈国玉  * @version 2015-3-29  * @Description Tom(厨师) and Jerry(吃货)吃饼 1.Tom每3秒可以烧制一张饼 2.Jerry每8秒可以吃掉一张饼  *              3.盛饼的盘子只能装10张饼,当盘子装满后,Tom就休息不再做饼, 等待Jerry拿走一张饼以后再继续烧制  *              4.做100张饼、全部由Jerry吃完, 由程序反映出做饼和吃饼的过程  *   *              提示:用内部类来声明Tom和Jerry线程,这样就可以使用全局的盘子变量 用Stack对象来作为盘子,放饼push、吃饼pop  *              用一个从0开始的整数变量来代表第几张饼,这样每一个饼都可以相当于有个编号  */ public class EatCake {         Stack<Integer> plate = new Stack<Integer>();         int num = 0;          public static void main(String[] args) {                 EatCake ec = new EatCake();                 Tom tom = ec.new Tom();                 Jerry jerry = ec.new Jerry();                 tom.start();                 jerry.start();         }          class Tom extends Thread {                 public void run() {                         while(num < 100){                                 if(plate.size() < 10){                                         try {                                                 sleep(3000);                                         } catch (InterruptedException e) {                                                 e.printStackTrace();                                         }                                         plate.push(++num);                                         System.out.println("Tom做了第"+num+"张饼!");                                 }                         }                 }         }          class Jerry extends Thread {                 public void run() {                         int count = 0 ;                         while(true){                                 if(!plate.isEmpty()){                                         System.out.println("Jerry吃了第"+plate.pop()+"张饼!");                                         count++;                                         try {                                                 sleep(8000);                                         } catch (InterruptedException e) {                                                 e.printStackTrace();                                         }                                 }                                 if(count >= 100){                                         break;                                 }                         }                 }         }  }
回复 使用道具 举报
最经典,生产都与消费者,百度一下JAVA的生产者与消费都
回复 使用道具 举报
要多经典
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马