Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus?
Hi, ist es bei Lock and Conditions auch so, dass eine parallele Verarbeitung stattfindet, wie bei Threads? Und ist es bei Threads erst so, dass iene parallele Verarbeitugn stattfindet, wenn man synchronized nutzt?
Also, ob und was wirklich parallel ablaeuft in Threads ist ein Implementierungsdetail des Betriebssystems. Das Betriebssystem entscheidet was wann ausgefuehrt werden soll.
synchronized ist effektiv ein Lock auf den Kontext der Klasse (also entweder Instanz oder Statischen Kontext). Das bedeutet dass eine Methode oder ein Block welcher synchronized ist, ist garantiert dass dieser nicht gleichzeitig von unterschiedlichen Threads betreten wird. Wird eine synchronized Methode oder Block gerade ausgefuehrt und ein anderer Thread will diese ausfuehren, haelt dieser an bis der erste Thread die Methode verlassen hat.
Hi, ist es bei Lock and Conditions auch so, dass eine parallele Verarbeitung stattfindet, wie bei Threads? Und ist es bei Threads erst so, dass iene parallele Verarbeitugn stattfindet, wenn man synchronized nutzt?
Locks sind Locks, die haben nichts damit zutun wie der Code ausgefuehrt wird, die sorgen eben nur dafuer dass ein zweiter Thread diesen Teil nicht parallel ausfuehrt. "Conditions" ist ein Wort, ja, hat alleinstehend aber so richtig gar nichts damit zu tun.
Also, ob und was wirklich parallel ablaeuft in Threads ist ein Implementierungsdetail des Betriebssystems. Das Betriebssystem entscheidet was wann ausgefuehrt werden soll.
synchronized ist effektiv ein Lock auf den Kontext der Klasse (also entweder Instanz oder Statischen Kontext). Das bedeutet dass eine Methode oder ein Block welcher synchronized ist, ist garantiert dass dieser nicht gleichzeitig von unterschiedlichen Threads betreten wird. Wird eine synchronized Methode oder Block gerade ausgefuehrt und ein anderer Thread will diese ausfuehren, haelt dieser an bis der erste Thread die Methode verlassen hat.
Locks sind Locks, die haben nichts damit zutun wie der Code ausgefuehrt wird, die sorgen eben nur dafuer dass ein zweiter Thread diesen Teil nicht parallel ausfuehrt. "Conditions" ist ein Wort, ja, hat alleinstehend aber so richtig gar nichts damit zu tun.
Hi danke, die Sache ist wir haben eine Aufgabe, wo wir Methoden nicht synchronized haben und dann wird gefragt, findet eine parallele Verarbeitung statt und danach haben wir synchronized Mehtoden, die das Ergebnis leifern, was wir auch wollten. Und da wird dann ebenfalls gefragt, ob eine parallele Verarbeitung stattfindet?
Ja das habe ich gelesen, deshalb kapiere ich dei Fragestellung nicht, wenn wir das nicht synchronized haben, haben wir nicht das gewünschte Ergebnis,w as wir haben sollten, bei synchronized haben wir es.
Nun ist halt die Frage ob es ohne synchronized parallel läuft und ob es mit synchronized parallel läuft
Wie Robert schon sagte, gibt es keine Aussage darüber, ob zwei Threads wirklich parallel ausgeführt werden.
Es gibt aber sehr wohl eine Garantie darüber, dass zwei Threads garantiert nicht parallel/zeitgleich ausgeführt werden, wenn sie sich auf denselben Monitor synchronisieren (per synchronized etwa auf derselben Instanz oder Klasse).
Ja das habe ich gelesen, deshalb kapiere ich dei Fragestellung nicht, wenn wir das nicht synchronized haben, haben wir nicht das gewünschte Ergebnis,w as wir haben sollten, bei synchronized haben wir es.
synchronized/Locks/Conditions sind weder notwendig noch geeignet, um eine parallele Verarbeitung auszulösen. Dagegen werden sie genutzt, um die gleichzeitige Nutzung einer Ressource im Rahmen einer nebenläufigen Programmierung zu reglementieren.