xx_xxxxxx_2 2023-02-21 17:13 采纳率: 100%
浏览 33
已结题

有没有人帮我看看怎么写,改了好多次感觉都不对

办公室中只有一台打印机,员工李强、王晓及陈明的电脑均连接在这台打印机上,请使用Java语言编写多线程程序,模拟三位员工使用打印机的情况。

  • 写回答

1条回答 默认 最新

  • muyiliu 2023-02-21 17:46
    关注

    //定义员工线程,其中关键字synchronized 是锁,同一时间,只能有一个线程访问打印机

    public class MyThread extends Thread {
    
          private int count=5; 
            @Override 
            synchronized  public void run()
            { 
                super.run(); 
                count--; 
                //此示例不要用for语句,因为使用同步后其他线程就得不到运行的机会了, 
                //一直由一个线程进行减法运算 
                System.out.println("count="+count); 
            }
        }
    
    

    //启动线程,

    public class Test {
        public static void main(String[] args)
        { 
            MyThread mythread=new MyThread(); 
            Thread a=new Thread(mythread,"A"); 
            Thread b=new Thread(mythread,"B"); 
            Thread c=new Thread(mythread,"C"); 
            a.start(); 
            b.start(); 
            c.start(); 
        }
    }
    
    

    这个三个线程同时运行,打印的结果都不相同。
    如果不加synchronized ,那么打印的结果可能有相同值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 请提交代码 2月21日
  • 创建了问题 2月21日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集