Mój problem jest dość powszechny Przypuszczam, ale doprowadza mnie do szału:Jak utworzyć bezpieczny dla wątków bufor/POD?
Mam wielowątkową aplikację z 5 wątkami. 4 z tych wątków wykonywać swoją pracę, jak komunikacji sieciowej i lokalnego dostępu do systemu plików, a następnie wszystko napisać swoje wyjście do struktury danych tego formularza:
struct Buffer {
std::vector<std::string> lines;
bool has_been_modified;
}
5. nadrukami nić te buforowe/Konstrukcje do ekranu:
Buffer buf1, buf2, buf3, buf4;
...
if (buf1.has_been_modified ||
buf2.has_been_modified ||
buf3.has_been_modified ||
buf4.has_been_modified)
{
redraw_screen_from_buffers();
}
Jak chronić bufory przed zastąpieniem podczas gdy są one albo są odczytywane lub zapisywane?
Nie mogę znaleźć odpowiedniego rozwiązania, chociaż myślę, że to musi być cichy, wspólny problem.
Dzięki.
użytku [mutexes] (http://en.cppreference.com/w/cpp/thread/mutex) – Diego
Dziękuję za odpowiedź. Nie mam dużego doświadczenia w wielowątkowości. Czy mógłbyś podać krótki przykład? – dummy
Czy istnieje jakiś szczególny powód, dla którego prosiłeś o POD? (zauważ, że obecnie zaakceptowana odpowiedź nie opisuje POD) – Hurkyl