小编And*_*ael的帖子

为什么Java Future.get(timeout)不可靠?

在给定的超时后,Future.get(timeout)不能可靠地抛出TimeoutException.这是正常的行为,还是我可以做些什么来使这更可靠?我的机器上的测试失败了.但是如果我睡了3000而不是2000,它就会过去.

public class FutureTimeoutTest {
@Test
public void test() throws
    ExecutionException,
    InterruptedException {

    ExecutorService exec = Executors.newSingleThreadExecutor();
    final Callable call = new Callable() {
        @Override
        public Object call() throws Exception {
             try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
            return 0;
        }
    };
    final Future future = exec.submit(call);
    try {
        future.get(1000, TimeUnit.MILLISECONDS);
        fail("expected TimeoutException");
    } catch (TimeoutException ignore) {
    }
}
Run Code Online (Sandbox Code Playgroud)

}

java multithreading timeout java.util.concurrent

27
推荐指数
3
解决办法
2万
查看次数

如何判断UIView是否在前面(可见)?

我需要检测前面的哪个视图(当前可见).我怎样才能做到这一点?

这是我想做的事情:

if ( ! <<methodToTellIfViewAIsInFront>>) {
  [viewA prepareToDisplay];
  [window bringSubviewToFront: viewA];
}
Run Code Online (Sandbox Code Playgroud)

iphone uiview

8
推荐指数
2
解决办法
4万
查看次数