3
에서 스레드 폐기 메시지가 처리됩니까? 쓰레드 풀을 사용해야합니까?나는 새 스레드에게 새로운 메시지가 소비 될 때마다 시간을 돌면서 rabbitmq 큐 가입자가 루비 나 JRuby를
JRuby를 사용하고 있습니다. 위의 코드는 일반적인 루비 구문을 사용하여 Java JVM 스레드를 생성합니까? 아니면 명시 적으로 Java 스레드를 만들어야합니까?
에서 스레드 폐기 메시지가 처리됩니까? 쓰레드 풀을 사용해야합니까?나는 새 스레드에게 새로운 메시지가 소비 될 때마다 시간을 돌면서 rabbitmq 큐 가입자가 루비 나 JRuby를
JRuby를 사용하고 있습니다. 위의 코드는 일반적인 루비 구문을 사용하여 Java JVM 스레드를 생성합니까? 아니면 명시 적으로 Java 스레드를 만들어야합니까?
내가 생각하는 스레드를 수동으로 처리 할 필요가 없으며, 루비 스레드를 사용해야한다. jruby가 자바 성능을 향상시키는 자바 스레드이기 때문이다.
공통적 인 일은 몇 가지 스레드를 스핀 업하고 다음 단계 전에 모든 것이 완료되었는지 확인하려면 계속하기 전에 모두 참여하는 것입니다. 그러나 여기서는 필요하지 않은 것 같습니다. .
# foo.rb
a = Thread.new { print "a"; sleep(1); print "b"; print "c" }
require 'pp'
pp Thread.list
puts "foo"
sleep(2);
pp Thread.list
puts "bar"
당신이 양산 배경 스레드가 자동으로 제거됩니다 볼 수 있듯이 :
여기에 약간의 테스트 프로그램입니다. (jruby뿐만 아니라 1.9.2에서 테스트 됨
$ ruby foo.rb
a[#<Thread:0x00000100887678 run>, #<Thread:0x0000010086c7d8 sleep>]
foo
bc[#<Thread:0x00000100887678 run>]
bar