Hiho!
Also.
Eingentlich ist das Problem ganz einfach:
Ich speichere in meinem Programm mitten in einer Berechnung einzeln mehrere Bilder. Also vor dem Speichern arbeitet das Programm, danach auch (rechnen-speichern-rechnen-speichern...) . Wenn ich das jetzt so in den Code reinschreibe (mit ImagieIO.write() ) dann sagt er mir irgendwann, dass die JVM keinen verfügbaren Speicerh mehr hat.
Er will das Bild also auf der Platte Speichern, schafft dies aber nicht, da das Programm schon weitermacht.
Nach ein paar Bildern wird dann also dieser Fehler geworfen.
Okay, dachte ich mir geben wir ihm zeit. Jetzt lasse ich einfach den Thread, der sowohl berechnet als auch speichert eine sekunde nach dem ImageIO.write()-Befehl schlafen und mache dann weiter. Das funktioniert auch.
Jetzt nur wie Frage: kann ich das optimieren? Kann man irgendwie sagen "Wenn das Bild auf der Platte ist, dann mach weiter", denn ich denke die Zeit hierfür ist weit unter 1s.
Also.
Eingentlich ist das Problem ganz einfach:
Ich speichere in meinem Programm mitten in einer Berechnung einzeln mehrere Bilder. Also vor dem Speichern arbeitet das Programm, danach auch (rechnen-speichern-rechnen-speichern...) . Wenn ich das jetzt so in den Code reinschreibe (mit ImagieIO.write() ) dann sagt er mir irgendwann, dass die JVM keinen verfügbaren Speicerh mehr hat.
Er will das Bild also auf der Platte Speichern, schafft dies aber nicht, da das Programm schon weitermacht.
Nach ein paar Bildern wird dann also dieser Fehler geworfen.
Okay, dachte ich mir geben wir ihm zeit. Jetzt lasse ich einfach den Thread, der sowohl berechnet als auch speichert eine sekunde nach dem ImageIO.write()-Befehl schlafen und mache dann weiter. Das funktioniert auch.
Jetzt nur wie Frage: kann ich das optimieren? Kann man irgendwie sagen "Wenn das Bild auf der Platte ist, dann mach weiter", denn ich denke die Zeit hierfür ist weit unter 1s.