0
が、私はこのコード使用JRubyの
require 'thread'
work_q = Queue.new
(0..50).to_a.each{|x| work_q.push x }
workers = (0...4).map do
Thread.new do
begin
while x = work_q.pop(true)
50.times{print [128000+x].pack "U*"}
end
rescue ThreadError
end
end
end
workers.map(&:join)
を持っていたときに私のRubyのスレッドコードは、私はMRIを使用して実行する場合、それが唯一のconcurently実行しています知っている自動並列に実行されますありません。
しかし、私はJRubyの上でそれを実行した場合、それはconcurentlyと並列実行するか、単にconcurently
ますが、並列プロセスを実現するためにはJRuby上でJavaを使用してスレッドコードを記述することは必須ですか?
ああいいです。それを知ることは素晴らしいことです。もう1つの質問。それが並行して実行されていることを証明する方法。 –
@SunuPinasthikaFajar Windowsの場合は、タスクマネージャを開き、[パフォーマンス]タブに移動し、右クリックして[グラフを変更する>論理プロセッサ]を選択します。これにより、すべてのプロセッサコアを監視して、コードがすべてのプロセッサコアで実行されているか、そのいずれかで実行されているかどうかを確認できます。 – eiko
Linuxの場合は、 'htop'コマンドを使ってプロセスが動作しているコアを確認することができます。 – eiko