Ruby / Rails Thread Sicherheit

Ich habe-hacking mit Ruby von Zeit zu Zeit, aber ich habe nichts getan, groß oder multithreaded. Ich habe gehört, dass die MRT unterstützt nur green threads und JRuby unterstützt native threads über JVM. Allerdings stolpere ich über Kommentare auf den blogs und Diskussionsgruppen, die sagen, dass "Schienen ist nicht thread-safe", oder dass Ruby selbst ist nicht thread-sicher. Zum Beispiel, wenn jemand kommentiert, dass es ein problem mit der require-Anweisung. Das klingt ein bisschen grundsätzlicher.

Ich habe gesehen, dass viele Java-apps, die nicht behandeln, Parallelität richtig, und ich habe Alpträume über Sie von Zeit zu Zeit : -), Aber mindestens Sie kann schreiben von thread-safe Anwendungen in Java, wenn Sie wirklich wissen, was Sie tun (es ist einfach nicht einfach).

Klingt das alles ziemlich beunruhigend, kann mir jemand dies näher auszuführen - was genau ist das problem und wie Rails verwaltet, überhaupt zu arbeiten, wenn dies der Fall ist? Kann ich das schreiben von Multithread-Ruby-code, der ordnungsgemäß funktioniert, ohne race-conditions und deadlocks? Ist es portabel zwischen JRuby und MRT oder muss ich den hack im JVM-spezifische code, um die Vorteile der JVM native threads, richtig?

EDIT:

Ich sollte habe gebeten, zwei Fragen, weil die Menschen nur scheinbar zu beantworten, die Schienen threading-Zeug (das ist nett) und grün threading vs. native threading. Meine Bedenken für die core-Ruby-Probleme-thread Sicherheit noch nicht wirklich angesprochen wurde. Es scheint zumindest eine (ungelösten?) Problem mit erfordern in bestimmten Fällen.

Kommentar zu dem Problem

InformationsquelleAutor der Frage auramo | 2009-03-15

Schreibe einen Kommentar