以下是我想解决的编程问题......
我正在创建一个(C ++ 11)服务器应用程序来管理在其他服务器上执行的操作。到目前为止,我已将其设计为执行以下操作:
为每个远程服务器启动一个线程(对其进行正在管理的操作),轮询服务器以确保它仍处于工作状态。
为其管理的每个操作启动一个线程,轮询远程服务器以获取有关操作当前状态的信息。
我遇到问题的地方是......对远程服务器的调用以验证它是否存在/工作,并且获取在远程服务器上管理的操作的状态的调用是等待"等待& #34;操作。如果某些东西停止工作(远程服务器停止响应,或者我无法获得在远程服务器上运行的操作的状态,我试图只是" kill"监视该服务器的线程或操作,并将它(服务器或操作)标记为死/无响应。不幸的是,似乎没有任何干净的方法来杀死一个线程。
请注意,我试图"杀死"线程,因为我正在执行的许多调用是等待"操作,我不能让应用程序挂起,因为它正在等待一个操作完成(在某些情况下可能永远不会完成)。我已经做了一些关于杀死"的方法的研究。一个活动的线程(从经理线程中停止)。我能找到的唯一一个C ++线程管理库,甚至支持C ++方法来杀死"一个线程就是" ZThread"库,但使用它的杀戮方法似乎并不一致。
我需要找到一种方法来开始执行一段代码(即:一个线程),它将执行一些等待操作,并在需要时终止该代码的执行(不等待操作完成。
建议???