Comment lire à partir de BufferedReader
simultanément par plusieurs threads.BufferedReader dans un environnement multithread
Répondre
Eh bien, vous ne serez pas en mesure d'avoir en train d'effectuer simultanément une lecture. Cependant, vous pouvez:
- Synchronisez toutes les lectures sur un verrou, de sorte que seul thread essaie de lire à la fois, mais ils peuvent tous lire la suite
- Avoir un fil juste lecture, et faire il remplit une file d'attente thread-safe de quelque sorte (voir java.util.concurrent pour diverses options) dont les autres threads récupèrent des éléments.
Voulez-vous lire des lignes à la fois, ou des blocs de caractères arbitraires?
Si tous les threads doivent lire toutes les lignes du fichier, vous devez créer un lecteur séparé pour chaque thread. Si chaque thread traite une ligne à la fois (et l'ordre des lignes n'a pas d'importance), alors vous devriez probablement utiliser le modèle producteur/consommateur, où un seul thread lit réellement le fichier et place la charge de travail dans un BlockingQueue, tandis que d'autres threads suppriment périodiquement les charges de travail et les traitent. Notez que vous pourrez reduire le temps de verrouillage si vous lisez N lignes dans une liste, puis placez la liste dans la file d'attente de blocage, au lieu de placer chaque ligne directement dans la file d'attente, car cela permettra de lire plusieurs lignes/extrait avec une seule opération de synchronisation ... placer et supprimer chaque ligne directement dans/hors de la file d'attente sera très inefficace, surtout si le traitement est assez rapide.
- 1. Opérations atomiques ruby dans un environnement multithread
- 2. Java. Sérialisation d'objets dans un environnement multithread
- 3. différence entre SendOrPostCallback et Action dans un environnement multithread?
- 4. Mise à jour de DataGrid View dans un environnement multithread
- 5. Comment nettoyer de manière optimale les objets UrlConnection sortants dans un environnement multithread à haute utilisation?
- 6. en utilisant l'instruction de mise à jour dans toplink dans un environnement multithread
- 7. La région bitmap est déjà verrouillée, environnement multithread
- 8. Impossible de lire le flux d'entrée de socket dans un environnement multithread avec wait et notify
- 9. L'interface graphique VB6 ne fonctionne pas dans un environnement COM multithread
- 10. Essayer d'anticiper le comportement de .NET TcpClient.GetStream() concernant l'utilisation du port éphémère dans un environnement multithread
- 11. données de lecture d'une prise en rubis dans un environnement multithread
- 12. pourquoi ostringstream ne pouvait pas fonctionner correctement dans un environnement multithread
- 13. Problèmes avec BufferedReader/PrintWriter?
- 14. Java BufferedReader readline blocage?
- 15. Pourquoi utiliser BufferedReader dans ce cas?
- 16. Connexion à une application multithread dans Java
- 17. Condition Monitor.Wait/Pulse dans un serveur multithread
- 18. core dump dans un programme multithread
- 19. Application multithread dans un processeur multicœur
- 20. Nhibernate: insérer puis mettre à jour génère des déclarations, dans un environnement multithread conduit à une impasse questions
- 21. JavaScript multithread dans IE6?
- 22. requête sur un programme multithread
- 23. Plusieurs commandes dans un environnement dans LaTeX
- 24. Comment créer un nouvel environnement Beamer avec un environnement verbatim?
- 25. Conversion d'une ArrayList de chaînes en BufferedReader
- 26. Limite de taille sur BufferedReader dépassée?
- 27. Persistance des données avec BufferedReader et PrintWriter?
- 28. Action BufferedReader Java sur le personnage?
- 29. Java, sockets, BufferedReader, et readline hang ... :(
- 30. tracd créer un environnement
Que voulez-vous réaliser? – Searles