我需要帮助修复此代码的一部分,我试图在多线程java中的另一条消息之后发出一条消息,但是它不起作用,我该怎么办?

问题描述 投票:0回答:1

这是一个与众不同的舱室,目的是使过客从机场到机场,然后再到B,然后再回到机场,但是大多数情况下,当过客要从B回到机场时,看来他们到达了机场,然后出现了另一条消息说他们要回到机场,我该怎么办?也可以显示其他课程

   public void run() {
                    try {
                        Thread.sleep(new Random().nextInt(50)); //time till it gets to the airport
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("The " + currentThread().getName() + " started the trip with " + numPeople + " passangers!");

                    try {
                        Thread.sleep(new Random().nextInt(100));  //time till it gets to A
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    ms.addGuiaCondutor(this);

                    synchronized (obj) {
                        try {
                            obj.wait();
                        } catch (InterruptedException e1) {
                            e1.printStackTrace();
                        }
                    }

                    try {
                        Thread.sleep(100); //time till it gets to B
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    fd.addGuiaCondutor(this);

                    try {
                        Thread.sleep(500); //time till it gets to the airport
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("O " + currentThread().getName() + " arrived at the airport!");
                    ga.guiasCondutores.remove(this);

                }
java multithreading thread-sleep java-threads thread-synchronization
1个回答
0
投票

为了更好地理解,这是我得到的输出,忽略所有其他内容,请查看Driver1

[驾驶员1被叫到机场驾驶:公共汽车驾驶员1正在排队前往Sereuves博物馆!司机1正在开始参观Sereuves博物馆!客户端7处于队列中客户端8处于队列中客户端9处于队列中驾驶员2被叫到机场驾驶:出租车/优步客户端10处于队列中驱动程序2正在排队到Sereuves博物馆!客户端11处于队列中客户端12处于队列中司机3被叫到机场驾驶:公共汽车驱动程序3正在排队前往Sereuves博物馆!驾驶员1完成对Sereuves博物馆的访问!驾驶员1开始了下一个命运的旅程:福兹杜杜罗!司机2正在开始参观Sereuves博物馆!驱动程序1正在排队进入Foz do Douro!司机1正在开始参观杜鲁(Foz do Douro)!司机1到达机场!这里是问题!司机2参观了Sereuves博物馆!驾驶员2开始了下一个命运的旅程:福兹杜杜罗!驾驶员1结束了对Foz do Douro的访问!司机1正在开往机场!

问题是,驾驶员1必须在输出的最后一句话之后而不是之前到达机场我可以显示其他课程

© www.soinside.com 2019 - 2024. All rights reserved.