Il doit y avoir un objet frontière - contenant un ensemble d'URL visitées et en attente d'analyse. Il doit y avoir un thread responsable de l'exploration des pages Web. Il y aurait également une sorte d'objet contrôleur pour créer des threads d'exploration.Architecture la plus rapide pour le robot d'indexation multithread
Je ne sais pas quelle architecture serait la plus rapide, la plus facile à étendre. Comment diviser les responsabilités pour faire aussi peu de synchronisation que possible et aussi minimiser le nombre de vérification si l'URL actuelle a déjà été visitée.
L'objet contrôleur devrait-il être responsable de fournir de nouvelles URL aux threads de travail - ce qui signifie que les threads de travail auront besoin d'explorer toutes les URL données, puis de dormir pendant un temps indéfini. Le contrôleur interprétera ces threads afin que le thread d'analyse puisse gérer InterruptedException
(Combien cela coûte cher en Java - il semble que la gestion des exceptions ne soit pas très rapide). Ou peut-être que le contrôleur ne devrait lancer que les threads et laisser les threads ramper pour aller plus loin eux-mêmes?