办公室中只有一台打印机,员工李强、王晓及陈明的电脑均连接在这台打印机上,请使用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 ,那么打印的结果可能有相同值。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
- ¥20 关于URL获取的参数,无法执行二选一查询
- ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
- ¥15 marlin编译错误,如何解决?
- ¥15 有偿四位数,节约算法和扫描算法
- ¥15 VUE项目怎么运行,系统打不开
- ¥50 pointpillars等目标检测算法怎么融合注意力机制
- ¥20 Vs code Mac系统 PHP Debug调试环境配置
- ¥60 大一项目课,微信小程序
- ¥15 求视频摘要youtube和ovp数据集