首先介绍一个指标的方法,使用signal替代cancel调用: 当workerthread超时时,在主线程(或者是监视进程)中调用 [cpp]viewplaincopy 1.if((status=pthread_kill(pthread_id,SIGUSR1))!=0) 2.{ 3.printf("Errorcancellingthread%d,error=%d(%s)",pthread_id,status,strerrorstatus)); ...
如果你的编译平台不支持pthread_cancel,你可能需要寻找替代方法来实现线程取消功能,或者考虑更换到一个支持该函数的平台。 寻找替代方法: 如果你的平台不支持pthread_cancel,你可以考虑使用其他机制来实现线程取消。例如,你可以设置一个全局标志变量,让线程定期检查这个变量,并在需要取消时退出线程循环。 通过以上步骤,你...