Wie funktioniert malloc in einer Multithread-Umgebung?

Lesezeit: 1 Minute

Benutzeravatar von pythonic
pythonisch

Tut das Typische malloc (für x86-64-Plattform und Linux-Betriebssystem) einen Mutex am Anfang naiv sperren und ihn freigeben, wenn er fertig ist, oder sperrt er einen Mutex cleverer auf einer feineren Ebene, sodass Sperrkonflikte reduziert werden? Wenn es tatsächlich den zweiten Weg macht, wie macht es das?

  • In welchem ​​Kontext haben Sie das gesehen? Irgendein zitierter Code oder Verweis?

    – Raulp

    22. Mai 2012 um 17:04 Uhr


  • leise: Ich frage, sage nicht.

    – pythonisch

    22. Mai 2012 um 17:05 Uhr

  • Ich bin mir immer noch unschlüssig, ob nedmalloc eine echte Ingenieursleistung oder SEO-Spam ist… 🙂

    – R.. GitHub HÖR AUF, EIS ZU HELFEN

    22. Mai 2012 um 18:39 Uhr

  • auch tcmalloc von Google, das Sperren für Buckets verwendet, die Ihrer Anfrage entsprechen. Bessere Thread-Leistung mit weniger Konflikten, mehr Überschusszuordnung.

    – böser otto

    22. Mai 2012 um 20:09 Uhr

  • @R..: Es sieht auf den ersten Blick etwas verdächtig aus, aber es hat Quellcode, so dass Sie es selbst bewerten können (ich habe es nicht getan). Doug Lea sagt auch “Wenn Sie malloc in einem gleichzeitigen Programm verwenden, ziehen Sie stattdessen die Verwendung von nedmalloc oder ptmalloc in Betracht” in den Kommentaren für dlmalloc.c. Also ich denke, es ist wahrscheinlich legitim.

    – Adam Rosenfield

    22. Mai 2012 um 21:06 Uhr

1411370cookie-checkWie funktioniert malloc in einer Multithread-Umgebung?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy