MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
hottyです。 ソニックムーブ Advent Calendar 2013 12/11(水)の記事になります。 今回はRubyの並列処理について書こうと思います。 この記事には過ちがあると指摘されました(さぁどこでしょうか)。詳しくは追記を! Rubyの処理系は1.8まではユーザレベルで行うグリーンスレッドでしたが、 1.9からはMRIにYARVという処理系が組み込まれ、 カーネルがスレッドの管理を行うネイティブスレッドになりました。 では、早速ですがThreadクラスで複数のスレッドを作って並列処理を行ってみましょう。 [sourcecode lang="ruby"] list = ["A", "B", "C", "D"] io = File.open("result.log", "w") list.each do |name| thread = Thread.fork(name) do
Ruby の Monitor と ConditionVariable の使い方 なかなかぐぐっても日本語の資料が見つからなかったので自分で動かしてみた。(ぐぐる能力低い) まずThreadの直列化 require "thread" require "monitor" moni = Monitor.new val = 0 Thread.new { 3.times { puts "thread1 start: #{val}" val+=1 sleep 0.1 puts "thread1 end: #{val}" } } Thread.new { 3.times { puts "thread2 start: #{val}" val+=1 sleep 0.1 puts "thread2 end: #{val}" } } sleep 結果は以下の通り。 start > end, start > en
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く