背景是提高爬虫的速度。
代码里分别用了 Parallel 和普通多线程(Thread)的办法,这两个办法的打印结果见文件尾部注释
https://gitee.com/crella/rubycode/blob/master/help_mutithread.rb
问题:1、从 Parallel 方法的打印结果来看,这算是并行成功吗?因为好像 windows 上的 ruby 不支持 fork,所以 Parallel 可能无法利用多核。
2、我觉得这里的场景用不到 async,但是如果用 async 写,怎么传参数给用了 async 的函数?就是怎样用 async 来实现多线程 分别 下载指定页数的 html 的功能?
ruby async 的文档在: https://github.com/socketry/async
吐槽: 经常看不懂 ruby 的 proc
1
agagega 2020-03-10 20:17:40 +08:00
Ruby 的 Thread 目测是不能真实多核的,只能提高 IO 效率
|