6
私はキーボード割り込みを待つとし、いくつかは、マルチスレッド環境で終了する前に操作をクリーンアップを可能にするためにループを使用しています。`ループ{}` `対ループ{睡眠1}`
begin
loop {}
rescue Interrupt
p "Ctr-C Pressed..Cleaning Up & Shutting Down"
loop do
break if exit_bool.false?
end
exit 130
end
このコードはメインスレッドで実行されます。複数のスレッドが複数のファイルとDB操作を実行しています。 exit_bool
は、それらがいくつかの操作の途中でであることを示すために、他のスレッドによって設定された原子VARです。私は値をチェックし、それがfalse
して終了を点灯するまで待ちます。
loop{}
の費用はloop{sleep x}
ではないと思います。高いCPU使用率(〜100%)で