Piszę program, w którym znajduje się obiekt podzielane przez wielu wątków:Czy muszę zablokować obiekt podczas odczytu z niego?
- A) Wiele wątków Napisz do obiektu (wszystko działa ten sam funkcja)
- b) wątku odczytu, który ma dostęp przedmiot co 5 sekund
- C) czytać wątek, który uzyskuje dostęp do obiektu znajduje się żądanie użytkownika
to jest oczywiście konieczne, aby zablokować obiekt pisząc do niego, a nie chcemy wiele wątków do w obrzędu do obiektu w tym samym czasie.
Moje pytania są następujące:
- Jest to również konieczne, aby zablokować obiekt podczas czytania od niego?
- Czy mogę pomyśleć, że jeśli po prostu zablokujemy obiekt podczas pisania, wystarczająca jest sekcja krytyczna; ale jeśli zablokujemy obiekt podczas czytania lub pisania, konieczne jest muteks?
Zadaję to pytanie, ponieważ w pakiecie Microsoft Office dwa wystąpienia programu Word nie umożliwiają dostępu do dokumentu w trybie dostępu do odczytu/zapisu; ale gdy dokument jest otwierany w trybie odczytu/zapisu, możliwe jest otwarcie kolejnej instancji programu Word w celu uzyskania dostępu do dokumentu w trybie tylko do odczytu. Czy ta sama logika miałaby zastosowanie w wątkach?
Przydatne jest zbadanie, w jaki sposób relacyjne bazy danych to robią, są mistrzami wspólnego dostępu do danych. – skaffman