さらにもうひとつの並列処理を簡単に記述するための Thread クラスのラッパーライブラリ.
-
Thread::Task は並列処理でよく使う構成を簡潔に記述できるようにしたもの.
-
Thread::Pool は Thread::Task の同時実行数を制限する.
-
Kernel#future メソッドを使うと、非同期処理を簡潔に記述できる。
アプリの Gemfile にこの行を追加
gem 'thread-task'それから実行
$ bundle install
または次のように手動で導入
$ gem install thread-task or $ gem install -l thread-task-x.x.x.gem
require "thread/task"
task = ::Thread::Task.new do
sleep 2
Time.now
end
p task.valueThread::Task.new( *args, pool: nil, &block )
Kernel#future( *args, pool: nil, &block )Kernel#future メソッドは require "thread/task/future" で利用可能になる.
-
Result:
-
Thread::Task オブジェクト.
-
-
Parameter:
-
args: args をはそのままブロックに渡す.
-
pool: Thread::Pool オブジェクト. (default: nil)
-
block: コールバック動作.
-
-
Block Parameter:
-
args: args をそのスレッド固有のローカル変数として扱う.
-
Thread::Pool.new( count )-
Result:
-
Thread::Pool オブジェクト.
-
-
Parameter:
-
count: 並列実行の最大数.
-
不具合報告とプルリクエストは GitHub https://github.com/arimay/thread-task まで.
この Gem は、 MITライセンス の条件に基づいてオープンソースとして入手できる.
Copyright (c) ARIMA Yasuhiro <arima.yasuhiro@gmail.com>