Udostępnij za pośrednictwem


Bezpieczeństwo wątków w standardowa biblioteka języka C++

Następujące zasady bezpieczeństwa wątku stosuje się do wszystkich klas standardowa biblioteka języka C++ (z wyjątkiem shared_ptr iostream klasy i, zgodnie z poniższym opisem).

Pojedynczy obiekt jest wielowątkowość odczyt z wielu wątków.Na przykład biorąc pod uwagę obiektu A, jest bezpieczne, A wątek 1 i 2 wątek jednocześnie odczytać.

Jeśli pojedynczy obiekt jest zapisywany przez jeden wątek, następnie wszystkie odczytuje i zapisuje się do tego obiektu na tych samych lub innych wątków, które muszą być chronione.Na przykład biorąc pod uwagę obiektu A, jeżeli wątek 1 jest piśmie A, następnie wątek 2 musi być uniemożliwił odczyt lub zapis do A.

Bezpiecznie do odczytu i zapisu do jednego wystąpienia określonego typu, nawet jeśli inny wątek jest odczyt lub zapis do innego wystąpienia tego samego typu.Na przykład biorąc pod uwagę obiektów, A i b tego samego typu, bezpiecznie Jeśli zapisywany w wątku 1 A i b jest odczytywany w wątku 2.

shared_ptr

Wiele wątków jednocześnie mogą odczytywać i pisać w różnych shared_ptr obiektów, nawet w przypadku, gdy obiekty są kopie, które współużytkują własności.

Klasy iostream

Klasy iostream, wykonaj te same reguły, innych klas, z jednym wyjątkiem.Bezpiecznie zapisu do obiektu z wielu wątków.Na przykład, można zapisać wątek 1 cout w tym samym czasie jak wątek 2.Jednak to skutkować dane wyjściowe z dwóch wątków jest zmieszanego.

[!UWAGA]

Odczyt z bufora strumienia nie jest uważana za operacji odczytu.Powinna ona uznana za operacji zapisu, ponieważ powoduje to zmianę stanu tej klasy.

Zobacz też

Informacje

Standardowa biblioteka C++ Przegląd