Was bedeutet es durch Thread-Serialisierung in C ++?

8

Ich weiß über das Serialisieren von Objekten und wie sie auf der Festplatte gespeichert werden, aber was bedeutet die Serialisierung von Threads eigentlich? Könnte mir hier jemand helfen und mir bitte in die richtige Richtung zeigen?

    
pokche 01.02.2013, 20:12
quelle

3 Antworten

10

Sie haben Recht, dass dies zwei verschiedene Bedeutungen von serialization sind. Sie sind mit der Datenserialisierung vertraut, die eine Datenstruktur in einigen kanonischen Darstellungen in einen Bytestrom umwandeln soll. In Multi-Threading bedeutet der Begriff Serialisierung gegenseitiger Ausschluss für Thread- oder Prozesssynchronisation was bedeutet, dass jeweils nur ein Thread auf einer Datenstruktur arbeiten kann. C ++ 11 ermöglicht die Serialisierung zwischen Threads mit std::mutex

%Vor%

Dies ist ein Beispiel für Initialisierung der Ressourcenerfassung (RAII) , in dem die Ressource gleichzeitig erfasst und initialisiert wird , und freigegeben, wenn der Gültigkeitsbereich überschritten wird (Ausführung erreicht die nächste geschweifte Klammer). Dies ist ein allgemeines Idiom, es stellt sicher, dass der Mutex freigegeben wird, selbst wenn der Code vor Erreichen des Endes des Blocks eine Ausnahme auslöst.

    
amdn 01.02.2013, 20:34
quelle
7

Serialize bedeutet eigentlich, in einer seriellen Form zu veröffentlichen, wie in einer nach der anderen. Die Thread-Serialisierung bedeutet also, sicherzustellen, dass bestimmte Ereignisse in einer Sequenz nicht gleichzeitig auftreten.

Ein Heap mit serialisiertem Thread-Zugriff bedeutet also, dass Aufrufe an den Heap in der Reihenfolge erfolgen, in der sie ausgeführt werden, und sie werden nicht gleichzeitig ausgeführt. Dies geschieht wahrscheinlich mit Hilfe einer globalen Sperre.

    
NtscCobalt 01.02.2013 20:19
quelle
2

Ohne den spezifischen Kontext zu kennen, in dem Ihnen das gesagt wurde, nehme ich an, dass es sich auf die Entwicklung einer Anwendung mit einem einzigen Thread bezieht, die ein multi-threaded System simuliert . p>

Das bringt mich zurück zu den alten Tagen, als ich ein CircleMUD Derivat spielte. Das gesamte Spiel wurde in einem einzigen Thread implementiert, aber es musste sich gleichzeitig mit 50-100 Spielern beschäftigen . Ich war ziemlich erstaunt, wie sie das geschafft haben.

    
karlphillip 01.02.2013 20:21
quelle

Tags und Links