2012-12-13 3 views
1

JRuby의 멀티 쓰레딩 지원은 일반 Ruby가 지원하는 것보다 낫습니다. 일반 오래된 Ruby의 스레드에 어떤 문제가 있습니까?Ruby 스레드가 충분하지 않습니까?

+1

Cf. http://stackoverflow.com/questions/999482 – Jan

+1

http://stackoverflow.com/questions/56087/does-ruby-have-real-multithreading – rohit89

+0

링크를 제공해 주셔서 감사합니다. –

답변

2

"보통"루비 (또는 mri)는 한 번에 둘 이상의 스레드가 루비 코드를 실행하지 못하게하는 큰 잠금 장치 (GIL 또는 GVL이라고 함)를 가지고 있습니다.

Rubinius와 jruby에는이 자물쇠가 없습니다. 루비 1.8.x에서 스레드는 녹색 스레드 였지만 루비 1.9 루비 스레드는 원시 스레드로 매핑됩니다. GVL은 많은 이점을 얻지 못하게합니다. 예를 들어, 여러 MySQL의 쿼리가 다른 스레드에서 동시에 실행할 수 있도록

기본 확장 잠금 이외의 코드를 실행할 수 있지만, 잠금을 보유하지 않을 때 그들은 정규 루비 API로 호출 할 수 없습니다

관련 문제