能不能给父线程抛异常

Can you throw an exception to the parent thread

我应该实现一个为每个连接启动一个新线程的原始多线程服务器。

其中一个线程应该有可能收到关闭服务器的消息。

是否可以从子线程之一通知父线程停止接受新连接并关闭服务器?

您可能知道,您可以在多个线程上共享变量。

您可以使用布尔变量,比方说 exceptionOccuredserverShutdown,这将默认为 false,并且在每个线程的异常处理程序中您将此变量设置为 true。

在主线程中,您将监视该变量的值并在该变量变为 true 时执行必要的工作(即停止所有线程等)。

为了实现这一点,您必须先阅读 volatile keyword

线程间通信有几种方式:

  1. 您可以保持共享状态(多线程中的罪恶根源)和 更新它并让主线程多次检查该状态 (使用 volatile 或障碍)
  2. 创建工作线程时你可以通过 主线程的一个实例,如果任何线程在任何时候想要 停止主线程它可以在主线程上调用一个方法来停止 接受进一步的请求(比以前的解决方案更优化)。