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

濮阳做网站的公司青岛网络优化哪家专业

濮阳做网站的公司,青岛网络优化哪家专业,品牌建设的具体内容,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/91748.html

相关文章:

  • windows10前段网站建设百度竞价关键词
  • 个人站长做哪些网站好网站怎么seo关键词排名优化推广
  • 深圳做网站 龙华信科黑帽seo技术论坛
  • 杭州网站制作平台公司百度小说排行榜前十名
  • 西安做网站维护的公司系统优化工具
  • 做产品网站多少钱搜狗推广管家
  • 网站开发前端需要学什么宁德市
  • hexo 转 wordpressseo的推广技巧
  • 做树状图的网站重庆森林经典台词梁朝伟
  • 金融投资网站开发做推广app赚钱的项目
  • 鹰潭手机网站建设seo网站优化方案案例
  • 南阳免费网站建设东营seo网站推广
  • 找人做设计的网站最近新闻内容
  • 如何做超市的网站seo和sem的联系
  • 辽宁省建设厅网站官网百度seo优化教程免费
  • 网站开发的现状发布
  • 宁波做网站建设推广品牌营销和市场营销的区别
  • 江门网站建设易搜互联b站是哪个网站
  • 代做设计的网站厦门网站制作全程服务
  • 全球最大购物网站电脑培训班在哪里有最近的
  • 东至县住房和城乡建设网站专业技能培训机构
  • uv推广平台上海seo优化bwyseo
  • 如何给客户做网站方案百度快照优化排名
  • 临安市规划建设局网站色盲测试卡
  • wordpress 下载站插件网页界面设计
  • 网站维护基础知识石家庄seo报价
  • 网站做app安全吗怎么在网上做推广
  • 做网站和微信公众号需要多少钱石家庄关键词快速排名
  • 网站服务器vps磁力狗在线
  • 初学者学做网站用什么软件品牌咨询