4

我有两种方法。第一个远程执行可执行文件,第二个执行与可执行文件对话。可执行文件是一个网络服务。第一步不会返回 true(通过 shell 执行),因为它启动并等待第二步。有没有办法并行执行第一种方法和第二种方法?

4

4 回答 4

8

使用线程。

t1 = Thread.new do
  first_method
end
second_method
t1.join
于 2013-04-03T08:49:20.650 回答
6

除了股票线程支持,我想提一下伟大的 Ruby gem Parallel

它可以并行生成进程并同时利用多个 CPU/内核。

于 2013-04-03T13:01:31.333 回答
0

你可以使用 ruby​​ 的线程来做到这一点。您可以查看链接,以便了解可以使用线程做什么。

http://www.tutorialspoint.com/ruby/ruby_multithreading.htm

http://ruby-doc.org/core-2.0/Thread.html

于 2013-04-03T09:18:26.220 回答
0

使用 fork 并行运行事物,由于全局解释器锁一次处理一个线程,线程是并发的,但在 ruby​​ 中不是并行的。

https://www.toptal.com/ruby/ruby-concurrency-and-parallelism-a-practical-primer

于 2021-11-03T16:19:33.950 回答