Multithreading 关闭时终止多个线程的最佳方法
我正在寻找安全关闭多个线程的方法,这些线程的工作是Multithreading 关闭时终止多个线程的最佳方法,multithreading,shutdown,Multithreading,Shutdown,我正在寻找安全关闭多个线程的方法,这些线程的工作是 while(1) { doAction sleep } 我正在考虑使用一个布尔值,比如说正在关闭,让while循环在睡觉前检查它。但是,我担心如果处于睡眠状态,关机将不得不等待睡眠完成,然后再检查变量。想知道是否有办法唤醒睡眠中的线程并优雅地退出。在.NET中:如果线程没有清理:将线程的IsBackground属性设置为true,它将随着进程终止 如果要进行清理,我建议实现显式调用以确实设置布尔值(或在.NET中使用任务时设置
while(1) {
doAction
sleep
}
我正在考虑使用一个布尔值,比如说
正在关闭,让while循环在睡觉前检查它。但是,我担心如果处于睡眠状态,关机将不得不等待睡眠完成,然后再检查变量。想知道是否有办法唤醒睡眠中的线程并优雅地退出。在.NET中:如果线程没有清理:将线程的IsBackground属性设置为true,它将随着进程终止
如果要进行清理,我建议实现显式调用以确实设置布尔值(或在.NET中使用任务时设置取消标记)。在这种情况下,关闭进程的线程必须至少等待工作线程的睡眠时间才能唤醒和清理
我建议不要中止线程。虽然它可能会中断线程,但如果它在中止时正在执行某些操作(如写入文件),它可能尚未完成其工作,这可能会使状态处于不确定状态。什么语言,什么操作系统?