- 主题:std thread是不是没办法强制中断
所以如果是纯 IO 的话,强烈建议你们使用协程。可以被中断是协程的重要优势。
【 在 grainbuds (hello) 的大作中提到: 】
: 没有terminate 或者 interrupt 方法。
--
FROM 140.224.35.*
只要约定在事件等待或者 IO 等待的时候允许中断就行了。Java 的线程已经接近完美,所有 Lock 的 acquire() 都可能抛出 InterruptedException,可惜 IO 事件没有。
C++ 如果遵循 RAII,保证抛出异常的时候能够销毁资源,也可以这么干。不过对于在阻塞和 IO 的时候,需要包装一下相关的 API,退出后检测线程状态并抛出异常。
【 在 KillnCov (KillnCov) 的大作中提到: 】
: 从设计看上,从外部中断线程并不是好的设计。正确的做法是应该告诉线程,你可以退出了,然后线程做好资源清理等收尾工作后自己退出。
: 所以问题就是如何通知线程可以退出了,这个方法就很多了。最简单的全局变量,条件变量等等
: --来自微水木3.5.11
: ...................
--
修改:hgoldfish FROM 47.243.39.*
FROM 140.224.35.*
做一个 HTTP 请求,到一半的时候,用户取消了。HTTP 请求也要取消是很正常的需求。
【 在 Specu1ator (野生股评家) 的大作中提到: 】
: 线程很轻量了,没有中断的必要吧
: 发自「今日水木 on 新号养分,新号养分」
--
FROM 112.47.122.*
传到后端才好呢。用户点了取消,结果后端还是帮用户下了单。这不是坑人么。
【 在 Specu1ator (野生股评家) 的大作中提到: 】
: 这个完全是前端行为,没必要传导到后端,请求端做好超时或者直接中断socket就行吧
: 发自「今日水木 on 新号养分,新号养分」
--
FROM 112.47.122.*