能不能给父线程抛异常
Can you throw an exception to the parent thread
我应该实现一个为每个连接启动一个新线程的原始多线程服务器。
其中一个线程应该有可能收到关闭服务器的消息。
是否可以从子线程之一通知父线程停止接受新连接并关闭服务器?
您可能知道,您可以在多个线程上共享变量。
您可以使用布尔变量,比方说 exceptionOccured
或 serverShutdown
,这将默认为 false
,并且在每个线程的异常处理程序中您将此变量设置为 true。
在主线程中,您将监视该变量的值并在该变量变为 true
时执行必要的工作(即停止所有线程等)。
为了实现这一点,您必须先阅读 volatile keyword
线程间通信有几种方式:
- 您可以保持共享状态(多线程中的罪恶根源)和
更新它并让主线程多次检查该状态
(使用 volatile 或障碍)
- 创建工作线程时你可以通过
主线程的一个实例,如果任何线程在任何时候想要
停止主线程它可以在主线程上调用一个方法来停止
接受进一步的请求(比以前的解决方案更优化)。
我应该实现一个为每个连接启动一个新线程的原始多线程服务器。
其中一个线程应该有可能收到关闭服务器的消息。
是否可以从子线程之一通知父线程停止接受新连接并关闭服务器?
您可能知道,您可以在多个线程上共享变量。
您可以使用布尔变量,比方说 exceptionOccured
或 serverShutdown
,这将默认为 false
,并且在每个线程的异常处理程序中您将此变量设置为 true。
在主线程中,您将监视该变量的值并在该变量变为 true
时执行必要的工作(即停止所有线程等)。
为了实现这一点,您必须先阅读 volatile keyword
线程间通信有几种方式:
- 您可以保持共享状态(多线程中的罪恶根源)和 更新它并让主线程多次检查该状态 (使用 volatile 或障碍)
- 创建工作线程时你可以通过 主线程的一个实例,如果任何线程在任何时候想要 停止主线程它可以在主线程上调用一个方法来停止 接受进一步的请求(比以前的解决方案更优化)。