Speicherbedarf von std::mutex



  • Hallo zusammen,

    auch wenn ich mir sicher bin, dass der Standard keine Aussagen über den Speicherbedarf eines std::mutex macht, würde ich gerne wissen, ob (in der Regel) zu dem sizeof(std::mutex), der auf meinem Betriebssystem 64 Byte ist, zusätzlicher Speicher alloziert wird. Also ist beispielsweise in jedem mutex noch ein Vektor oder ähnliches, der die wartenden Threads enthält? Oder wird sowas zentral verwaltet, so dass zwar generell zusätzlicher Speicher benötigt wird, aber dieser nicht pro Mutex notwendig ist.

    Gruß
    XSpille



  • Da wird wohl nur der Mutex des Betriebssystems drin stecken. Du hast doch den Code, du kannst doch nachsehen.



  • Die gesamte C++11 Thread Bibliothek besteht nur aus Wrappern um die OS eigene Bibliothek. Auf Windows wäre das die WinAPI, auf Unix pthread. Neben dem Handle, dessen Größe sich zwischen 32 und 64 Bit unterscheidet, wird in std::mutex noch anderes drin stecken, aber das ist implementierungsbedingt, womit ich manni66s Ratschlag nur wiederholen kann.


Log in to reply