merbist.com
11 Jul '12, 9am
@lovecankill 不過,如果是 IO call,Ruby 的 GIL 是不會鎖住 thread 的,對 IO-bound 的 app 來說就還可以接受,CPU-bound 的話 GIL 就沒救了。請參考
I heard a lot of people telling me they were looking into using Node.js because it has a better design and no GIL. While I like Node.js and if I were to implement a chat room or an app keeping connections for a long time, I would certainly compare it closely to EventMachine, I also think that this argument related to the GIL is absurd. First, you have other Ruby implementations which don’t have a GIL and are really stable (i.e: JRuby) but then Node basically works the same as Ruby with a GIL. Yes, Node is evented and single threaded but when you think about it, it behaves the same as Ruby 1.9 with its GIL. Many requests come in and they are handled one after the other and because IO requests are non-blocking, multiple requests can be processed concurrently but not in parallel. Well folks, that’s exactly how C Ruby works too, and unlike popular believe, most if not all the ...
Full article:
http://merbist.com/2011/10/18/data-safety-and-gil-removal/