Hey,
habe mir ein ThreadPool selbst programmiert und hätte eine Frage bzgl. der Thread-safety. Also ich habe eine Queue, in der Aufgaben für die Threads enthalten sind. Die Queue ist eine ArrayBlockingQueue, also soweit ich das verstanden habe, Thread-safe. Wenn etwas entnommen werden soll vom Thread, aber nichts vorhanden ist, dann wartet der Thread bis eine neue Aufgabe eintrifft, und genauso, wenn eine Aufgabe hinzugefügt wird, aber die Queue schon voll ist.
Die Threads greifen so auf die Queue zu: Aufgabe aufgabe = queue.take();
Dann wird mit run() ausgeführt.
Jetzt ist meine Frage: Brauche ich ein synchronized, weil viele Threads gleichzeitig drauf zugreifen?
Ich hoffe es ist verständlich was ich meine und ich bin hier auch im richtigen Bereich.
MFG
Nuur
habe mir ein ThreadPool selbst programmiert und hätte eine Frage bzgl. der Thread-safety. Also ich habe eine Queue, in der Aufgaben für die Threads enthalten sind. Die Queue ist eine ArrayBlockingQueue, also soweit ich das verstanden habe, Thread-safe. Wenn etwas entnommen werden soll vom Thread, aber nichts vorhanden ist, dann wartet der Thread bis eine neue Aufgabe eintrifft, und genauso, wenn eine Aufgabe hinzugefügt wird, aber die Queue schon voll ist.
Die Threads greifen so auf die Queue zu: Aufgabe aufgabe = queue.take();
Dann wird mit run() ausgeführt.
Jetzt ist meine Frage: Brauche ich ein synchronized, weil viele Threads gleichzeitig drauf zugreifen?
Ich hoffe es ist verständlich was ich meine und ich bin hier auch im richtigen Bereich.
MFG
Nuur