DispatchQueue

DispatchQueue is a simple way to serialize jobs.
It was done for crawling things, but could be used in any case that you need to do more than one work at a time.

COMPATIBILITY

Check build status to see support in different platforms

Build Status

USAGE

  • The threaded_way:
[1,2,3].threaded_each{|i|
  sleep 4-i
  puts i
}
3
2
1
[1,2,3].threaded_map{|i| sleep 4-i ; i } #=> [3,2,1]
  • The explicit way:
my_work_queue = DispatchQueue.new(lambda{ sleep 3 ; 5},  lambda{ 10 })
my_work_queue.sort #=> [5, 10]
  • The implicit way:
DQ[ lambda{ sleep 5 ; 3} , Proc.new{ sleep 6; 2 } ].sort #=> [2,3]

CHANGELOG

  • 1.1.0 Create [].threaded_each [].threaded_map (2011/09/22)
  • 1.0.5 Reduce implementation

LICENSE

"THE BEER-WARE LICENSE" (Revision 42):
guillermo@cientifico.net wrote this file. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you think
this stuff is worth it, you can buy me a beer in return Guillermo Álvarez Fernández

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。