J'ai un cas où de nombreux threads tous génèrent simultanément des données qui sont finalement écrites sur un long flux de fichier. Je dois en quelque sorte sérialiser ces écritures pour que le flux soit écrit dans le bon ordre.Terme standard pour un tampon de réorganisation d'E/S de thread?
ie, I ont une file d'attente d'entrée de 2048 emplois j ..j n, dont chacun produit un bloc de données i o . Les travaux s'exécutent en parallèle sur, disons, huit threads, mais les blocs de sortie doivent apparaître dans le flux dans le même ordre que les blocs d'entrée correspondants — le fichier de sortie doit être dans l'ordre o o ...
la solution à c'est assez évident: je besoin d'une sorte de tampon qui accumule et écrit les blocs de sortie dans l'ordre correct, semblable à un tampon de réordonnancement CPU dans Tomasulo's algorithm, ou à la façon TCP réassemble les paquets en panne avant de les transmettre à la couche application. Avant de passer au code, je voudrais faire une rapide recherche documentaire pour voir s'il y a des papiers qui ont résolu ce problème d'une manière particulièrement intelligente ou efficace, car j'ai de sévères contraintes en temps réel et en mémoire. Je n'arrive pas à trouver des documents décrivant cela; une recherche Scholar sur chaque permutation de [threads, concurrent, reorder buffer, réassemblage, io, sérialiser] n'a rien donné d'utile. Je me sens comme si je ne devais pas chercher les bons termes.
Existe-t-il un nom ou un mot-clé académique commun pour ce type de modèle que je peux rechercher?
Véritable série - un chiffrement de flux. – Crashworks
Votre solution ne fonctionne que si la longueur des enregistrements de sortie est connue avant la fin du traitement. –