Ich habe zwei Future
s, von denen die zweite nach dem ersten beendet wird. Beide schreiben in die gleiche ArrayBuffer
Instanz, aber da sie seriell (nicht gleichzeitig) ausgeführt werden, betrachte ich sie nicht gleichzeitig.Verwenden Sie ArrayBuffer in sequentiell ausgeführten Threads?
Allerdings weiß ich, dass es die @volatile
Annotation für Variablen gibt, die von zwei oder mehr Threads geteilt werden (@volatile
deaktiviert Caching).
Da nach dem ersten Thread beendet ist, im Inneren des ArrayBuffer
Beispiel könnte es einige Caching los, dass sein macht es unmöglich für das zweite Gewinde der ArrayBuffer
‚s wirklichen Zustand zu sehen: Ich bin nicht sicher, ob es sicher ist, ArrayBuffer
auf diese Weise zu verwenden.
Ist es wahr, dass Caching ein Problem in meiner Situation sein kann, und wenn dies der Fall ist: Gibt es eine empfohlene Möglichkeit ArrayBuffer
intern @volatile
zu verwenden?
Leider ist dies derzeit nicht der Fall: Der 'ArrayBuffer'" besucht "die zwei Threads durch zwei Callbacks für jede Datei. Daher sieht der 'ArrayBuffer' keinen Unterschied zwischen den beiden Threads. Aber der zweite Thread (die zweite Zukunft) wird durch die OnComplete der ersten Zukunft gestartet. – ideaboxer
Warum onComplete und nicht flatMap? –
Da 'onComplete' ist ausreichend für meine Bedürfnisse. Inwiefern ist das für meine Frage relevant? – ideaboxer