Nous développons une application Java avec plusieurs threads de travail. Ces threads devront fournir beaucoup de résultats de calcul à notre thread d'interface utilisateur. L'ordre dans lequel les résultats sont livrés n'a pas d'importance.Quelle collection prend en charge plusieurs insertions simultanées?
À l'heure actuelle, tous les threads poussent simplement leurs résultats sur une pile synchronisée - mais cela signifie que chaque thread doit attendre les autres threads avant que les résultats puissent être délivrés.
Existe-t-il une structure de données qui supporte des insertions simultanées à chaque insertion en temps constant?
Merci,
Martin
+1: C'est certainement un cas pour les implémentations simultanées de 'Queue'. –
@Andrzej: pour moi, cela ressemble plus à un cas d'optimisation prématurée. –
@Michael pas vraiment - il est parfaitement normal de spécifier une insertion de temps constante sur une structure de données dans laquelle vous pourriez mettre beaucoup de données, et si vous n'utilisez pas la file d'attente concurrente de la bibliothèque, vous avez plus de code à écrire et il est plus difficile de tester afin d'obtenir quelque chose qui a le bon comportement. Il n'y a rien dans le PO ou ce post qui dit quoi que ce soit sur l'optimisation, juste l'exactitude dans les exigences. –