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

Java多线程——模拟看病叫号

需求说明:

某科室一天需看普通号50个,特需号10个
特需号看病时间是普通号的2倍
开始时普通号和特需号并行叫号,叫到特需号的概率比普通号高
当普通号叫完第10号时,要求先看完全部特需号,再看普通号
使用多线程模拟这一过程

思路:

这题如果把专家号和普通号都写为子线程就难了,

把专家号写成子线程,把普通号写成主线程这样就简单了,因为子线程和主线程是并行的,所以不会有任何的影响。

主线程:

package KB;

public class kbTest {
    public static void main(String[] args) {
        // 专家号和普通号两个线程同时执行,普通号是主线程,专家号是子线程
        Lookbing lookbing = new Lookbing();
        Thread thread1 = new Thread(lookbing);

        // 叫到特需号的概率比普通号高
        thread1.setPriority(Thread.MAX_PRIORITY);
        Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
        thread1.start();

        // 20个普通号
        for (int i = 1; i <= 50; i++) {
            System.out.println("普通号:"+i+"号病人正在看病");
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // 当普通号叫完第10号时,要求先看完全部特需号,再看普通号
            if(i==10){
                //
                try {
                    thread1.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

子线程:

public class Lookbing implements Runnable{
    @Override
    public void run() {
        for (int i = 1; i <= 10; i++) {
            System.out.println("专家号:"+i+"号病人正在看病");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}


http://www.kler.cn/a/304351.html

相关文章:

  • 【ES6复习笔记】解构赋值(2)
  • IBatis和MyBatis在细节上的不同有哪些
  • 显示 Windows 任务栏
  • 家政预约小程序数据库设计
  • 【C语言】深入探讨 C 语言 `int` 类型大小及其跨平台影响
  • 简述Git中如何将一个新增文件添加到本地仓库?
  • 聚鼎科技:现在做装饰画是靠谱的吗
  • pandas读取xlsx文件使用sqlachemy写到数据库
  • YOLOv5改进 | 模块缝合 | C3 融合RFAConv和CBAM注意力机制 【二次融合 小白必备】
  • 通过 汇编 分析 结构体
  • MongoDB根据字段内容长度查询语句
  • k8s 部署 ruoyi 前后端分离项目
  • 《企业实战分享 · SonarQube10.x 详细教程》
  • React 组件的基本使用,useState 状态变量的使用
  • 【Linux基础】02 权限
  • VUE+Tailwind网页开发
  • 大数据中一些常用的集群启停命令
  • oracle 如何查询表被锁
  • Vue自定义组件:解密v-model,轻松实现双向数据绑定
  • Nacos rce-0day漏洞复现(nacos 2.3.2)
  • 如何准备技术面试?
  • 利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(二)
  • Stream流的思想和获取Stream流
  • 设计模式重新整理
  • 中秋出游热度十足!喆啡酒店如何巧妙捕捉多元旅游需求?
  • 遥感技术在生态系统碳储量、碳收支、碳排放、碳循环以及人为源排放反演等领域的技术发展,实践角度解决遥感技术在生态、能源、大气等领域的碳排放监测及模拟问题