2008-11-10 5 views
4

Rails fait maintenant multi-threaded des applications possibles, mais il ne semble pas qu'il s'applique dans toutes les situations (par exemple, si vous utilisez Mongrel, cela ne sonne pas comme cela affecte vous du tout).Quelles situations multi-thread dans Rails

Quand pouvez-vous multi-thread votre application Rails?

This article donne plus d'informations sur les pièges multithread.

Répondre

6

Je ne m'attarderais pas aux applications multithread dans Ruby sauf si vous utilisez JRuby. Les threads Ruby ne sont pas des threads natifs et, d'après mon expérience, ils fonctionnent très mal. En outre, le gestionnaire de la mémoire de Ruby laisse beaucoup à désirer, de sorte que la séparation par processus plutôt que par thread s'avère être une approche beaucoup plus prête pour la production.

JRuby est une histoire différente. Il utilise les threads de Java, qui se traduisent par des threads natifs, et il utilise le garbage collector de Java, ce qui est excellent.

1

En règle générale, si vous envisagez d'utiliser des threads, votre approche n'est probablement pas la meilleure. Essayez d'abord d'expliquer pourquoi vous avez besoin de threads, et si vous en avez encore besoin, utilisez-les avec précaution :)

+0

Bien qu'il y ait une part de vérité dans ce que vous dites (c'est-à-dire que les fils sont difficiles à obtenir), c'est une sur-généralisation assez forte. Travailler dans un système qui enfile bien "en coulisses" peut rendre beaucoup moins complexe, en particulier dans les cas mentionnés dans les liens (changement automatique de contexte quand io bloqué, etc.) – RHSeeger

Questions connexes