CodingHanYa / workspace

workspace是基于C++11的轻量级异步执行框架,支持:通用任务异步并发执行、优先级任务调度、自适应动态线程池、高效静态线程池、异常处理机制等。
Apache License 2.0
916 stars 136 forks source link

线程返回超时问题 #33

Open ChaoII opened 7 months ago

ChaoII commented 7 months ago
workbranch br(2);
auto result = br.submit([](){
    return xx;
});
if(result.wait_for(xx) == std::future::time_out){
    // 请问一下 如过超时,如何杀掉执行当前超时任务的线程。
}else{
    result.get();
}

请问一下 如过超时,如何杀掉执行当前超时任务的线程。

CodingHanYa commented 7 months ago

线程不能随便杀掉。尽量确保不要有阻塞任务,也可以折中地用动态增加线程来解决。

CodingHanYa commented 7 months ago

这里wait_for可以指定一段时间,可以确保主线程不会因为异步线程而阻塞。