hallo, leute!
ich hab hier ein problem, an dem ich gerade verzweifle, vielleicht hat ja einer von den profis hier einen tipp für mich?
und zwar soll mir die folgende methode:
eine HashMap in ein byte-Array umwandeln. Soweit funktioniert das ja auch, mein problem ist, das die HashMap von
mehreren Threads benutzt wird, die die HashMap jederzeit verändern können.
jetzt hab ich den fehler, das die obige methode hin und wieder aufgerufen wird und in einigen
fällen nicht terminiert!
es erscheinen auch keine fehlermeldungen, die methode startet und beendet sich nie und ich vermute, das
es eben daran liegt, das die HashMap zum "kritischen" zeitpunkt eben von einem anderen Thread verändert wird.
weiß da vielleicht jemand rat, wie man sowas synchronisieren könnte?
besten dank schon mal,
thomas
ich hab hier ein problem, an dem ich gerade verzweifle, vielleicht hat ja einer von den profis hier einen tipp für mich?
und zwar soll mir die folgende methode:
Code:
private byte[] toByteArray(Object o) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ObjectOutputStream ois = new ObjectOutputStream(baos);
ois.writeObject(o);
} catch (IOException ex) {
logger.error(this, ex);
}
return baos.toByteArray();
}
eine HashMap in ein byte-Array umwandeln. Soweit funktioniert das ja auch, mein problem ist, das die HashMap von
mehreren Threads benutzt wird, die die HashMap jederzeit verändern können.
jetzt hab ich den fehler, das die obige methode hin und wieder aufgerufen wird und in einigen
fällen nicht terminiert!
es erscheinen auch keine fehlermeldungen, die methode startet und beendet sich nie und ich vermute, das
es eben daran liegt, das die HashMap zum "kritischen" zeitpunkt eben von einem anderen Thread verändert wird.
weiß da vielleicht jemand rat, wie man sowas synchronisieren könnte?
besten dank schon mal,
thomas