创建工厂类,

属性包括:车间类的对象的集合,仓库容量

方法包括:

1. 加工玩具的方法(product),方法的功能是各个车间同时工作。根据仓库容量平均分配给各个车间需要加工玩具的数量。2. 建造玩具车间的方法(createWorkshop),方法功能是模拟建造玩具生成车间,即向集合属性中添加一个新车间。

创建车间类:

属性包括:车间名称

要求:

1. 使用多线程模拟加工玩具的功能,假设每隔2秒可完成一个玩具的加工,每个车间完成一个玩具的加工后,打印当前已加工玩具数量(给每个线程设置名称为车间的名称)2. 创建测试类,模拟工厂加工玩具的功能。

提示:车间集合的容量即是线程的数量

//日常练习,如有问题,欢迎指出//工厂类
package com.javawork1.spx;import java.util.ArrayList;public class Factory implements Runnable{private int Tonum;private int num;private int rem;private ArrayList<Workshop>workshop;public Factory(int Fnum) {workshop=new ArrayList<Workshop>();this.Tonum=Fnum;}public void product() {num =(int) Math.floor(Tonum/(double)workshop.size());rem=Tonum%workshop.size();System.out.println("将玩具总量平均分配给各个生产车间后,还剩余"+rem+"件");}public void createWorkshop(Workshop name) {workshop.add(name);}public void run() {product();for(int i =1;i<=num;i++) {try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"到目前为止一共生产了" + i + "个玩具");try {Thread.sleep(500);} catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}if(i==num) {System.out.println(Thread.currentThread().getName()+"生产完毕 ,"+ Thread.currentThread().getName()+"一共生产了"+ i + "个玩具");}}}
}//车间类
package com.javawork1.spx;public class Workshop {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public Workshop() {}public Workshop(String name) {this.setName(name);}}//测试类
package com.javawork1.spx;public class Test {public static void main(String [] args) {Factory factory=new Factory(22);Thread thread1=new Thread(factory);thread1.setName("车间一");Workshop workshop1 = new Workshop();workshop1.setName("车间一");factory.createWorkshop(workshop1);thread1.start();Thread thread2=new Thread(factory);thread2.setName("车间二");Workshop workshop2 = new Workshop();workshop2.setName("车间二");factory.createWorkshop(workshop2);thread2.start();Thread thread3=new Thread(factory);thread3.setName("车间三");Workshop workshop3 = new Workshop();workshop3.setName("车间三");factory.createWorkshop(workshop3);thread3.start();Thread thread4=new Thread(factory);thread4.setName("车间四");Workshop workshop4 = new Workshop();workshop4.setName("车间四");factory.createWorkshop(workshop4);thread4.start();Thread thread5=new Thread(factory);thread5.setName("车间五");Workshop workshop5 = new Workshop();workshop5.setName("车间五");factory.createWorkshop(workshop5);thread5.start();}
}

Java多线程模拟加工厂加工玩具相关推荐

  1. java多线程模拟龟兔赛跑,JAVA多线程模拟龟兔赛跑

    JAVA多线程模拟龟兔赛跑! class Rabbit extends Thread{ Tortoise tor; int Journey; int RabbitSpeed; public Rabbi ...

  2. java多线程模拟购买火车票

    java多线程模拟购买火车票 本次做的是一个火车票的售卖模拟,不管用户是在窗口还是APP上购买,必然不可能买到同一张票这也就是说一张票的售卖必然是一个线程在操作的,所以,我们在写代码是也要注意这一点 ...

  3. Java多线程 模拟 购买 退订 机票

     Java多线程 模拟 购买 退订 机票 package cn.com.cloud.sea.thread; /*** @author HenryLee* @version 1.0* 买票*/ publ ...

  4. Java多线程模拟售票系统

    Java创建多线程的两种基本方法: 方法1.继承Thread类 (1)定义子类,继承Thread类,重写该类的run()方法作为线程执行体; (2)创建该子类的实例作为线程对象; (3)调用线程对象的 ...

  5. 利用JAVA多线程模拟售票系统,对统一资源进行处理

    首先多线程处理统一资源的方式有两种 分别介绍一下两者的区别 synchronized与Lock的区别 1.Lock不是Java语言内置的,synchronized是Java语言的关键字 2.synch ...

  6. Java 多线程 模拟银行ATM实时存取钱

    近期想回顾一些知识: 一.Java 多线程 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务.多线程是多任务的一种特别的形式,但多线程使用了更小的资源开 ...

  7. Java多线程 模拟售票窗口售票

    编写一个Java 多线程程序,完成三个售票窗口同时出售20张票 程序分析: 1.票数要使用同一个静态值: 2.为保证不会出现卖出同一个票数,要java多线程同步锁. 设计思路: 创建一个站台类Stat ...

  8. Java 多线程模拟卖票

    完成操作系统作业Java模拟多线程卖票 /*** @Author: crush* @Date: 2021-05-12 16:24* version 1.0*/ public class SellTic ...

  9. Java:多线程模拟多站点售票过程

    这是一个在并发状态下对共享资源的多线程访问.这些访问必须是互斥的进行,因为涉及到对资源的修改.假设现在销售火车票.目的地有3个,分别是北京,天津和上海.使用一个枚举类型表示. Destation.ja ...

最新文章

  1. 杭电oj2035c语言答案,杭电oj 2035
  2. mysql数据库导入后莫名丢失,oracle导入丢失数据库
  3. HTML5中各种标签总结(body标签)
  4. pat天梯赛L1-056. 猜数字
  5. pc端文本_使用即将推出的Windows功能从PC发送文本
  6. 解决:Could not find metadata org.apache.maven.plugins:maven-archetype-plugin/maven-metadata.xml in loc
  7. 汇编语言:实验8分析一个奇怪的程序
  8. python-字符串的切片操作
  9. Turn to Stone
  10. 吴恩达神经网络和深度学习-学习笔记-25-定位数据不匹配
  11. chrome谷歌浏览器历史版本
  12. 计算机mac地址设置路由器,MAC地址修改教程
  13. SQL解密ctext字段内容函数
  14. JMeter察看结果树响应数据都是相同原因
  15. GAN论文详细解读+思想
  16. 你还在使用JDK7,今天阿粉带你来了解一下JDK8,不得不说,真香!
  17. 电脑插入USB鼠标unknown device问题解决方案
  18. 【Visual c++】+【EasyX】游戏组件1 移动的小人
  19. 盘点2013:21款最优秀的开源数据库
  20. 刘强东最牛女助理任CHO:颜值不输奶茶妹妹,32岁成京东内部二号人物………...

热门文章

  1. React(二):jsx事件绑定、条件渲染、列表渲染、jsx的本质、购物车案例
  2. 【哈佛精神】业余时间
  3. [Kindle]如何用邮箱发送文件至Kindle设备?
  4. maya中一个简单的渲染层开关管理工具
  5. turbotax原理_使用OpenTaxSolver作为TurboTax的开源替代品
  6. 用ps画一个Gif的小房子(1)
  7. 【北邮国院大三下】Logistics and Supply Chain Management 物流与供应链管理 Week2
  8. 让人工智能解数学题,可能没你想象的那么简单
  9. 银联在线支付 java_银联在线 网关支付 (JAVA版)
  10. python画圆弧组成的花瓣代码_Python编程的Turtle 库画出“精美碎花小清新风格树”,速取代码!...