暂停用户输入循环

时间:2014-10-01 15:16:34

标签: java multithreading loops

如果我有这样的循环:

for(int i = 0; i <= 10; i++) { 
    System.out.println("Hello, User " + i;
    Thread.sleep(1000)
}

我如何添加没有需要用户输入的代码,但是如果用户选择在给定点暂停循环,他们可以这样做,并在稍后恢复?

2 个答案:

答案 0 :(得分:0)

尝试创建等待1秒的后台线程,以便用户选择暂停。如果未在1秒内选择,则向前移动。

这样写的方式,您的Thread.sleep()会将用户界面锁定1秒钟,无论用户做了什么,它都不会影响您的计划。

答案 1 :(得分:0)

为此,您需要实现多线程。一个线程将运行循环(T1),而其他线程可以等待用户输入(T2)。

  

T1 - while - &gt;检查是否通过普通bool属性输入 - &gt;   继续/中断循环

     

T2 - 等待输入 - &gt;如果输入==“暂停” - &gt;将common属性设置为true   暂停循环

类似的东西:

class MultiThread implements Runnable {

    boolean gotInput = false;
    int i = 0;
    public void run() {
        for(;i <= 10 && !gotInput; i++) {
            System.out.println("Hello, User " + i;
            Thread.sleep(1000)
        }
    }

    public static void main(String args[]) {

        MultiThread mt = new MultiThread ();
        Thread t = new Thread(mt);
        t.start();

        Scanner s = new Scanner(System.in);
        while (!s.next().equals("pause"));

        test.gotInput = true;
    }
}

在同一行,您可以根据需要恢复代码。