同时暂停/暂停多个线程然后恢复

时间:2017-06-10 01:58:13

标签: java multithreading button pause

是的,首先是这是一个任务问题 我正在为Elevator Simulation创建多个线程,而我现在正在运行线程但现在必须中断它们。我已尝试使用访问修饰符在按下“暂停”按钮时更改

eg: While(true){
     if(!Paused){
      *run code*
      }
     else {
       thread.sleep(10000);
      System.out.println("Paused");
     }}

但它不起作用,我试过调用电梯并直接暂停它,但我认为我的问题是,我是不是访问线程,我正在访问Elevator对象而不是Thread本身

eg: public void aWait() {
    for (Elevator e : elevators)
    {            
        e.pauseThread();
}}

仅针对上下文,我的runnable实现如下:

eg:     public void run() {
        while (true) {
            while (!paused) {
                    moveToNextDestination();
                    process();
                    System.out.println(Building.getStatusReport());}}}

我的过程就像这样

eg: public void process() {
    Person person;
    for (Elevator elevator : Building.elevators) {
        if (elevator.isAvailable() && (elevator.getCurrentFloor() == 0)) {
            while (Building.queue.size() > 0 && elevator.hasCapacity()) {
                person = Building.queue.get(0);
                elevator.loadPerson(person);
                Building.queue.remove(0);
            }
        }
    }
}

我真的不需要帮助电梯本身只管理线程,任何有关如何管理这个问题的建议都将不胜感激。

0 个答案:

没有答案