weixin_50926345 2021-05-24 10:51 采纳率: 0%
浏览 32

以下代码是什么意思(这是在写一个进度调程的代码的一部分)

while (true) {
        String name = scanner.next();
        if (name.equals("M")) {
            break;
        }
        int needTime = scanner.nextInt();
        PCB inputPCB = new PCB(name, needTime);
        currentQueue.offer(inputPCB);//offer添加不会抛出异常,而是返回false
        waitQueue.offer(inputPCB.getName());
    }
        scanner.close();

    
        while (true) {
        PCB processingPCB = currentQueue.poll();//取出首个元素
        if (processingPCB.state != 'M'){
            waitQueue.poll();
            processingPCB.setState('R');
            if (processingPCB.getNeedTime()>round) {
                processingPCB.setCpuTime(processingPCB.getCpuTime() + round);
                processingPCB.setNeedTime(processingPCB.getNeedTime() - round);
                processingPCB.setState('R');
                waitQueue.offer(processingPCB.getName());
            } else {
                processingPCB.setCpuTime(processingPCB.getCpuTime()
                        + processingPCB.getNeedTime());
                processingPCB.setNeedTime(0);
                processingPCB.setState('B');
                finishQueue.offer(processingPCB.getName());

            }
            
        }
        currentQueue.offer(processingPCB);

 

  • 写回答

1条回答 默认 最新

  • 记得我雨 2021-05-24 15:07
    关注

    你的代码不全,我说一下大致的意思

    name 应该是任务的名称,输入M时会退出循环

    needTime 任务执行的次数,任务的实际执行次数为needTime/round

    currentQueue 任务队列

    waitQueue 阻塞队列,添加和弹出会阻塞直到成功才返回

    你的采纳率为0  就说这么多了

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配