我正在使用循环等待键盘中断,在多线程环境下允许一些清理操作,然后退出。
begin
loop {}
rescue Interrupt
p "Ctr-C Pressed..Cleaning Up & Shutting Down"
loop do
break if exit_bool.false?
end
exit 130
end
这段代码在主线程中运行。有多个线程执行多个文件和数据库操作。
exit_bool
是一个原子变量,由其他线程设置以表示它们正在进行某些操作。我检查该值并等待直到它变为false
,然后退出。我想知道
loop{}
与loop{sleep x}
相比的成本是多少。