Hallo,
ich beschäftige mich gerade mit Multithreading. Dabei sin mir einige Sachen unklar.
1) Wenn zwei verschiedene Threads mit denselben Objektvariablen arbeiten, dann kommt es zu "Anomalien.".
Heißt das, wenn man Multithreading verwendet, dass man die Objektvariablen in keinem Fall verwenden soll?
2) Wenn zwei verschiedene Threads mit denselben Objektvariablen arbeiten, dann kommt es zu Anomalien.
Kann es auch zu Anomalien kommen, wenn zwei verschiedene Threads, dieselben Methoden verwenden?
3) Was ist Synchronisation in einfachen Worten
4) Was wäre ein Lese- und ein Schreibzugriff bezogen auf Threads?
5) Was bedeutet flushen und refreshen in einfachen Worten?
6) Warum wird für das synchronized meistens eine statische Variable "lock" vom Typ Object und nicht von einem anderen Typ verwendet?
7) Wozu ist die Variable lock da? Es wird damit ja nichts gemacht außer in das synchronized hingeschrieben.
8) Woher weiß man, an welche Stelle man das synchronized(...){} hinschreiben muss?
9) Wenn die Objektvariablen nicht package private sondern private sind.
Und hätte man getter verwendet, kann man dadurch Anomalien verhindern?
Weil, so teilen sich die Threads keine gemeinsame Variable mehr.
10) Was ist Sequential Continuity in einfachen Worten?
ich beschäftige mich gerade mit Multithreading. Dabei sin mir einige Sachen unklar.
1) Wenn zwei verschiedene Threads mit denselben Objektvariablen arbeiten, dann kommt es zu "Anomalien.".
Heißt das, wenn man Multithreading verwendet, dass man die Objektvariablen in keinem Fall verwenden soll?
2) Wenn zwei verschiedene Threads mit denselben Objektvariablen arbeiten, dann kommt es zu Anomalien.
Kann es auch zu Anomalien kommen, wenn zwei verschiedene Threads, dieselben Methoden verwenden?
3) Was ist Synchronisation in einfachen Worten
4) Was wäre ein Lese- und ein Schreibzugriff bezogen auf Threads?
5) Was bedeutet flushen und refreshen in einfachen Worten?
6) Warum wird für das synchronized meistens eine statische Variable "lock" vom Typ Object und nicht von einem anderen Typ verwendet?
Java:
static Object lock = new Object();
//......
synchronized(lock){}
8) Woher weiß man, an welche Stelle man das synchronized(...){} hinschreiben muss?
9) Wenn die Objektvariablen nicht package private sondern private sind.
Und hätte man getter verwendet, kann man dadurch Anomalien verhindern?
Weil, so teilen sich die Threads keine gemeinsame Variable mehr.
10) Was ist Sequential Continuity in einfachen Worten?