以下の内容はhttps://tbpgr.hatenablog.com/entry/20130529/1369853030より取得しました。


Ruby | parallelライブラリで並列処理を実装

概要

parallelライブラリで並列処理を実装

詳細

paralleライブラリを利用することで並列実行が可能です

インストール
gem install parallel

サンプル

# encoding: utf-8
require 'pp'
require 'parallel'
require "benchmark"

def _benchmark(&block)
  return unless block_given?
  ret = Benchmark.measure(&block)
  puts "#{ret.to_s}"
end

sleep_proc = Proc.new { sleep 1 }
sleeps = [sleep_proc, sleep_proc, sleep_proc, sleep_proc, sleep_proc]

def single_execute(blocks)
  blocks.each do |block|
    block.call
    puts __callee__
  end
end

def parallel_execute(blocks)
  Parallel.each(blocks, in_threads: 5)  do |block|
    block.call
    puts __callee__
  end
end

_benchmark() {single_execute(sleeps)}
_benchmark() {parallel_execute(sleeps)}

出力

single_execute
single_execute
single_execute
single_execute
single_execute
  0.000000   0.000000   0.000000 (  5.000286)
parallel_execute
parallel_execute
parallel_execute
parallel_execute
parallel_execute
  0.000000   0.000000   0.000000 (  1.001057)



以上の内容はhttps://tbpgr.hatenablog.com/entry/20130529/1369853030より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14