Dans mon programme Java, je crée un OtpNode et un "named" OtpMBox. Chaque fois qu'un message est reçu via cette mbox, une opération fastidieuse doit être effectuée après laquelle un message de réponse est renvoyé. Comme cette opération prend du temps, les messages suivants envoyés à la mbox ne seront pas traités immédiatement. Je veux donc utiliser des threads Java - un par message reçu. Ma question est que je devrais également créer un nouveau OtpMBox pour chaque message reçu ou le OtpMBox original peut-il être partagé parmi tous les threads?Erlang JInterface - OtpMBox est-il sûr pour les threads?
Répondre
Je ne suis pas vraiment familier avec ce genre de choses, mais je suppose que vous pouvez faire des calculs) Vous avez un surcoût de fonctionnement de OtpMBox pour chaque thread Java et de surcharge du système de contrôle (écrit en java) qui demanderait des threads différents faire du travail et en tirer des résultats. Je crois que Java n'est pas un bon outil pour ça)
Il vaut mieux faire java-thread 'supervor' qui va commencer (peut-être le nombre de processeurs) quantité 'worker' java-threads avec OtpMBox et envoyer les pids de OtpMBox à erlang système.
--sorry mon anglais
On dirait que vous essayez d'utiliser Java pour faire ce que Erlang est bon. Multiprocesseur léger et sûr. Y at-il une raison pour laquelle vous avez besoin d'utiliser Java pour le traitement pourrait-il être fait en erlang à la place? Ou inversement pourquoi utilisez-vous l'erlang si le java va faire des threads de toute façon. Je pense que peut-être plus d'informations seraient utiles pour répondre à cette question.
Je ne suis pas sûr de comprendre la question. Vous voulez un OtpMBox par thread juste pour pouvoir envoyer la réponse, ou cette opération de longue durée doit-elle pouvoir recevoir d'autres messages? Si le premier, vous pouvez réutiliser la mbox d'origine. L'opération d'envoi est synchronisée. Si ce dernier, il serait préférable de le faire de la manière Erlang, en créant une mbox pour chaque thread et en informant l'appelant du côté erlang de son pid afin qu'il puisse envoyer des données à cette mbox. C'est parce que jinterface n'a pas de réception sélective et les messages arriveront à n'importe quel thread qui se réveillera en premier.
Vous pouvez partager l'objet OtpMBox et l'utiliser à partir de plusieurs threads. Ce erlang-questions thread about jinterface threadsafety traite de la question.
En outre, pour les questions spécifiques Java pur, vous souhaitez probablement utiliser ThreadPoolExecutor from java.util.concurrent pour gérer les messages qui arrivent.
- 1. PHP est-il sûr pour les threads?
- 2. Profiler/Analyseur pour Erlang?
- 3. Jinterface OtpNode initialisation -name ou -sname flag
- 4. Conventions de dénomination pour les threads?
- 5. Erlang est-il prêt pour les applications professionnelles?
- 6. Est-il pratiquement sûr d'écrire des données statiques à partir de plusieurs threads
- 7. Interverrouillé utilisé pour incrémenter/imiter un booléen, est-ce sûr?
- 8. moyen sûr pour initialiser une classe dérivée
- 9. Comment débugger les fonctions d'includes dans Erlang?
- 10. Comment/pourquoi les langages fonctionnels (en particulier Erlang) s'adaptent bien?
- 11. Erlang Quiz
- 12. Erlang Multicast
- 13. utilisant Erlang Supprimer les espaces Regex
- 14. Pour plusieurs threads ou pas
- 15. MapViewOfFile avec des pointeurs entre les threads
- 16. Ruby Threads (Rake) pour FTP
- 17. 19 Threads pour l'application WPF
- 18. Emailing sûr du logiciel
- 19. Comment désigner un pool de threads pour les acteurs
- 20. Get Visual Studio pour lancer des exceptions sur les threads
- 21. ActiveRecord for Erlang
- 22. Priorité des nœuds Erlang
- 23. Erlang système de type
- 24. Quelles sont les fonctionnalités de C++ 0x qui resteront à coup sûr (le cas échéant)?
- 25. SÛR type et NHibernate
- 26. Erlang newbie question
- 27. Ruby dans Erlang
- 28. Caractéristiques cachées de Erlang
- 29. Erlang - analyse de code
- 30. Vous recherchez des didacticiels sur les threads d'interface utilisateur et les threads de travail
Ok, mais comment identifier quelle réponse vient à quel fil? – Rekin