1

在执行任何读/写操作之前,我有一个线程忙于循环,直到我的ServerSocket对象绑定到端口。

new Thread(() -> {
    while (!server.isBound()) {
        Thread.yield(); // hmm ... any better alternative????
    }
    while (!server.isClosed()) {
        // do stuff regarding server and clients
    }
}, "Server Connection Accept Thread").start();

Thread.yield()在busy-loop中使用过让其他线程在这个线程循环时运行(如果有的话),但是javadocThread.yield()

很少使用这种方法。它对于调试或测试目的可能很有用,它可能有助于重现由于竞争条件导致的错误。

现在,我这里没有竞争条件,我只需要等到套接字被绑定,并且由于套接字被绑定时没有回调,所以我坚持使用这种方法。有什么建议吗?

4

0 回答 0