Ruby クックブックを読み始めた
http://examples.oreilly.com/rubyckbk/
から 書籍中のサンプルコードを download した。
翻訳書籍では、いくつかの章が省略されているのがよくわかる。
XML を扱う章をなぜ省略してしまったんだろう...
やっぱり、原書を買うべきだったなぁ。
翻訳での第一章の最後の例は、面白い。
jruby でも問題なく動作した。
# This code will sleep forever... OR WILL IT?
require 'timeout'
before = Time.now
begin
status = Timeout.timeout(5) { sleep }
rescue Timeout::Error
puts "I only slept for #{Time.now-before} seconds."
end
# I only slept for 5.035492 seconds.
#---
def count_for_five_seconds
$counter = 0
begin
Timeout::timeout(5) { loop { $counter += 1 } }
rescue Timeout::Error
puts "I can count to #{$counter} in 5 seconds."
end
endcount_for_five_seconds
# I can count to 2532825 in 5 seconds.
$counter # => 2532825
#---
これは、長い時間がかかる処理を 5 秒で打ち切ってしまうという例だ。
こんなことができるとは知らなかった。
(同様のことを java で行うとしたら、どのように書く?)
« derby に郵便番号をインポートしてみた | トップページ | 映画 バベル、ホリデーを観た, etc... »
この記事へのコメントは終了しました。
コメント