Java 从其他方法的wait()返回

Java 从其他方法的wait()返回,java,playframework,web-frameworks,Java,Playframework,Web Frameworks,我是新手!我有一个关于HTTP异步编程的问题。 我有一段代码如下: public void someMethod() { for (int i = 0; i < 100; i++) { doSomething(); await(someTime); } } 用户通过GET/POST调用nextAwait()方法。 如果被调用,循环将继续,doSomething()将(必须)立即被调用 那么,在游戏中有可能吗 提前感谢您的回答:)我不知道它是

我是新手!我有一个关于HTTP异步编程的问题。 我有一段代码如下:

public void someMethod() {
    for (int i = 0; i < 100; i++) {
        doSomething();
        await(someTime);
    }
}
用户通过GET/POST调用nextAwait()方法。 如果被调用,循环将继续,doSomething()将(必须)立即被调用

那么,在游戏中有可能吗


提前感谢您的回答:)

我不知道它是否可以这样工作,但您可以尝试类似的方法:(您在某处有一个field monitor=new Object())

在您调用的另一个方法中:

synchronized ( monitor ) {
  this.monitor.notifyAll();
}

对此的简单答案是等待较短的时间,然后检查用户交互的一些值,然后继续等待

例如,假设您的总等待时间为10秒

public void someMethod() {
    for (int i = 0; i < 100; i++) {
        doSomething();
        for (int j=0; j<10; j++) {
            if (!userInterrupt) await("1s");
        }
    }
}
public void someMethod(){
对于(int i=0;i<100;i++){
doSomething();

对于(int j=0;j这将等待线程,但Play使用continuations,这实际上将线程放在一边,以便可以处理其他http请求。因此,这将导致http请求线程被阻塞!好的,我知道我可以这样使用它,但例如,1秒对我来说太长了,无法等待。当然,我可以设置200ms、300ms,但如果
有时(这是用户设置的值)很大(例如-1分钟),并且有许多用户同时调用此方法,这会不会降低性能太多?我的意思是-第二个循环将在很长一段时间内迭代得非常快。是的,它很可能会降低性能,但我不确定您对Play1.x有多少选择。然而,这仍然比大多数其他框架好,因为它至少释放了在每次检查之间读取,而其他框架将在整个等待期间保持线程。
synchronized ( monitor ) {
  this.monitor.notifyAll();
}
public void someMethod() {
    for (int i = 0; i < 100; i++) {
        doSomething();
        for (int j=0; j<10; j++) {
            if (!userInterrupt) await("1s");
        }
    }
}