Teoria współbieżności


Zajęcia 3

Oczekiwanie na warunek (condition wait)

  1. Oczekiwanie na spełnienie określonego warunku

  2. Sposób na podział oczekujących zadań na grupy - zadania z każdej grupy czekają na spełnienie innego warunku

  3. Zwykle realizowane przez zmienne warunkowe (condition variables)
    • wait(C)
    • signal(C)

  4. Zmienne warunkowe skojarzone z monitorem to po prostu nazwane kolejki monitora.

  5. Realizacja oczekiwania na warunek w Javie
    • Nie ma zmiennych warunkowych - jest tylko jedna anonimowa kolejka wait
    • Oczekiwanie w pętli while
      while (! warunek) {
        wait();
      }
      
    • Inny proces zmienia wartość zmiennej 'warunek' i wykonuje notifyAll

Mechanizmy synchronizacji w Java 2

  1. Pakiet Java Concurrency Utilities

  2. Wprowadza m.in.:
    • Zmienne atomowe
    • Mechanizmy synchronizacji
    • Zamki (lock)
    • Zmienne warunkowe

Przykłady

LockExampleMain, ReadWriteLockExampleMain, ConditionExampleMain, SemaphoreExampleMain.

Ćwiczenie - badanie efektywności mechanizmów synchronizacji w Javie

Informacja na zajęciach.


Bartosz Baliś, balis at agh edu pl