当前位置: 首页 > wzjs >正文

ps模板素材网站空间设计培训

ps模板素材网站,空间设计培训,优化wordpress速度,网站建设和制作怎么赚钱题目 1:模拟多人餐厅点餐 场景:在一家餐厅里,有多个顾客(线程)向服务员点餐,服务员(线程)依次处理每个顾客的订单,每个订单处理需要一定时间(模拟 sleep&…

题目 1:模拟多人餐厅点餐

场景:在一家餐厅里,有多个顾客(线程)向服务员点餐,服务员(线程)依次处理每个顾客的订单,每个订单处理需要一定时间(模拟 sleep)。当所有顾客都完成点餐,服务员开始准备餐食。

要求:

  1. 创建 Customer 类实现 Runnable 接口,每个顾客线程在构造时传入自己的名字,线程任务是向服务员发出点餐请求。
  2. 创建 Waiter 类实现 Runnable 接口,服务员线程接收顾客的点餐请求,按顺序处理,并在处理完所有顾客订单后,打印开始准备餐食的信息。
  3. 在 main 方法中创建多个顾客线程和一个服务员线程,使用 join 方法确保所有顾客点餐完成后,服务员才开始准备餐食。

Customer类 

public class Customer implements Runnable, Comparable<Customer> {private int name;public Customer(int name) {this.name=name;}public int getName() {return name;}public void setName(int name) {this.name=name;}@Overridepublic void run() {System.out.println("顾客"+getName()+" 发出点餐请求!");}@Overridepublic int compareTo(Customer other) {return Integer.compare(getName(),other.getName());}
}

Waiter类

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Waiter implements Runnable {private List<Customer> customers = new ArrayList<>();public void addCustomer(Customer customer){customers.add(customer);}public void sortCustomer(){Collections.sort(customers);}@Overridepublic void run() {for (Customer customer : customers) {System.out.println("服务员处理 顾客"+customer.getName()+" 的订单");}System.out.println("服务员开始准备餐食!");}
}

Test

public class Test {public static void main(String[] args) throws InterruptedException {Thread [] customerThreads = new Thread[5];Waiter waiter = new Waiter();Thread waiterRun = new Thread(waiter);//创建、添加顾客for (int i=0; i < customerThreads.length; i++) {Customer customer = new Customer(i+1);customerThreads[i] = new Thread(customer);waiter.addCustomer(customer);}//顾客排序waiter.sortCustomer();//启动顾客点餐for (int i=0; i < customerThreads.length; i++) {customerThreads[i].start();}//等待顾客执行完毕for (Thread customerThread : customerThreads) {customerThread.join();}//服务员开始执行waiterRun.start();waiterRun.join();}
}

输出结果:

题目 2:模拟十字路口交通

场景:十字路口有东西和南北两个方向的车辆(线程),每个方向的车辆交替通过路口,每次通行一段时间(使用 sleep 模拟)。当一个方向的车辆通行时,另一个方向的车辆需要等待(使用 yield 让出 CPU 资源)。

要求:

  1. 创建 Vehicle 类实现 Runnable 接口,每个车辆线程在构造时传入行驶方向(如 "东西" 或 "南北"),线程任务是循环模拟车辆通过路口的过程。
  2. 在 Vehicle 类的 run 方法中,使用 yield 让当前方向车辆通行时,另一个方向的车辆等待。
  3. 在 main 方法中创建两个车辆线程,分别代表东西和南北方向的车辆,并启动线程观察交替通行的效果。

 

Vehicle类(假设跑10次,每2次礼让)

public class Vehicle implements Runnable{private String direction;public Vehicle(String direction) {this.direction=direction;}public String getDirection() {return direction;}public void setDirection(String direction) {this.direction=direction;}@Overridepublic void run() {for (int i=0; i < 10; i++) {System.out.println(getDirection()+" 方向的车辆开始通行!");try {Thread.sleep(250);} catch (InterruptedException e) {e.printStackTrace();}if (i%2 == 0){Thread.yield();System.out.println(getDirection()+" 正在礼让另一方向的车辆");}}}
}

Test

public class Test {public static void main(String[] args) {Vehicle vehicle1 = new Vehicle("东西");Vehicle vehicle2 = new Vehicle("南北");Thread vehicleEW = new Thread(vehicle1);Thread vehicleNS = new Thread(vehicle2);vehicleEW.start();vehicleNS.start();}
}

输出结果:

http://www.dtcms.com/wzjs/798494.html

相关文章:

  • 荥阳市建设局网站建筑工程劳务信息平台
  • 电商运营网站大淘客网站是怎么做的
  • 联通做网站网站建设企业关键词
  • 微网站有哪些七牛镜像存储 wordpress
  • 湘潭哪里做网站柯林wap建站程序个人版
  • 做一个中英文网站多少钱电脑编程
  • 应用asp做网站四川建设网官网地址
  • 云虚拟主机 多个网站修改wordpress语言设置
  • 农产品网站建设计划书织梦网站如何修改数据库配置
  • 响应式网站图片代码自定义菜单WordPress
  • wordpress 网站描述互联网推广公司
  • 做企业网站哪家公司好网站的开发与建设项目
  • 淘宝网店开店网站建设网站做的文字乱码
  • 毕业季网站如何做网页哪里可以找人做网站
  • 网站建设明细报价表 服务器手机网站图片点击放大
  • 广东品牌网站建设968建设发展集团有限公司
  • 网站建设合同 英文范文拉新推广怎么做
  • 揭阳市住房和城乡建设局官方网站福州网站制作网站
  • 亚马逊商城官方网站临时手机号注册网站
  • 局域网里建设网站小红书推广价格
  • 抖音推广公司厦门企业网站排名优化
  • 龙岩门户网站直接做海报的网站
  • 怎样做才能让网站帮忙送东西欧米茄表官网
  • 宁波网站建设设计营销型 网站 品牌
  • 上海网站建设网站谁做的四虎网站是多少钱
  • 开网站做网站赚钱吗学校网站建设先进个人荣誉
  • 网站管理员密码忘记了东莞网站制作培训
  • 上海网站建设v芯ee8888e长沙高端网站建设服务
  • 怎么制作网站搜索窗口wordpress插件获取数据库
  • 网站开发语言入门免费设计装修公司网站