Standart C++ Kitaplığı'nda iş parçacığı güvenliği
Standart C++ Kitaplığı (aşağıda açıklandığı gibi shared_ptr ve iostream, sınıflar dışında) tüm sınıflarda aşağıdaki iş parçacığı emniyet kuralları uygulanır.
İş parçacıklarını birden çok iş parçacığı okuma için bir tek nesnedir. Örneğin, bir nesne verildiğinde, onu aynı anda iş parçacığı 1 ve 2 iş parçacığından a okumak güvenlidir.
Tek bir nesne için yazılan, bir iş parçacığı tarafından daha sonra tüm okur ve bu nesneye aynı yazar veya diğer iş korunması gerekir. Örneğin, iş parçacığı 1 a yazılıyorsa a, nesne verildiğinde, sonra iş parçacığı 2 okuma veya yazma için a. açmalarının gerekir
Başka bir iş parçacığı okuma ya da yazma aynı türde başka bir örneği bile bir türünün bir örneği için yazmak ve okumak daha güvenlidir. Örneğin, a ve b aynı türden nesneler verildiğinde, onu a 1 iş parçacığında yazılır ve b 2 iş parçacığında okumak güvenli olabilir.
shared_ptr
Çoklu iş parçacıklarını eşzamanlı olarak okuyup farklı yazma shared_ptr nesneleri, nesnelerin sahipliği paylaşan kopyaları olduğunda bile.
iostream sınıfı
İostream sınıfları, biri dışında diğer sınıflar olarak ayný kurallara uyar. Bir nesneye birden çok iş parçacığından yazmak güvenlidir. Örneğin, 1 iş parçacığı için yazabilirsiniz cout aynı anda 2 thread gibi. Ancak, bu intermixed iki iş parçacığı çıktısı neden olabilir.
Not
Akış Arabellek okuma, okuma işlemi olarak nitelendirilmez.Bu sınıf durumunu değiştirdiği için bir yazma işlemi düşünülmelidir.