窃取自:
“在服务器端,当客户端连接到服务器套接字时,会 fork 一个新线程来处理传入的调用。”
那么我怎样才能控制这些客户端线程,以便我可以让我的客户端 1 等待客户端 2 出现,然后执行它们需要执行的任何操作?
谢谢。
最佳答案
我同意@EJP 的观点,认为这是一个非常奇怪的要求。我将提供的解决方案应该可行,但通常是您绝对不想做的事情,因为它会阻塞线程,导致可用性和可扩展性不佳。
您可以使用 CountDownLatch 来实现此目的
将静态CountDownLatch
设置为1
public class RmiEndPoint{
static CountDownLatch startSignal = new CountDownLatch(1);
客户端2倒计时
public void executedByClient2(){
SharedLock.countDown();
}
客户端 1 正在等待
public void executedByClient1(){
SharedLock.await();
// do whatever you want to do
}
}
在实际代码中,您肯定希望有一些超时,这样如果 client2 没有出现,您的应用程序就不会永远挂起
关于java - 如何控制连接到 RMI 服务器的多个客户端线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20439603/