GNU/Linux >> Znalost Linux >  >> Linux

Mají vlákna zřetelnou hromadu?

Ve výchozím nastavení má C pouze jednu haldu.

To znamená, že některé alokátory, které si uvědomují vlákna, rozdělí haldu tak, aby každé vlákno mělo svou vlastní oblast, ze které lze alokovat. Myšlenka je, že by to mělo zlepšit měřítko haldy.

Jedním z příkladů takové haldy je Hoard.


Ne. Všechna vlákna sdílejí společnou haldu.

Každé vlákno má soukromý zásobník, do kterého může rychle přidávat a odebírat položky. Díky tomu je paměť založená na zásobníku rychlá, ale pokud použijete příliš mnoho paměti zásobníku, k čemuž dochází při nekonečné rekurzi, dojde k přetečení zásobníku.

Protože všechna vlákna sdílejí stejnou haldu, musí být přístup k alokátoru/deallokátoru synchronizován. Existují různé metody a knihovny, jak se vyhnout sporům o alokátory.

Některé jazyky umožňují vytvářet soukromé fondy paměti nebo jednotlivé haldy, které můžete přiřadit k jednomu vláknu.


Linux
  1. Má Curl časový limit?

  2. Jak vytisknout pthread_t

  3. funkce strtok bezpečnost vlákna

  1. Vlákna a deskriptory souborů

  2. Má Python argument argc?

  3. Zpracování signálu s více vlákny v Linuxu

  1. Máme v Linuxu možnost vrátit zpět?

  2. ID vlákna Pythonu, jak je uvedeno nahoře

  3. Jsou vlákna jádra Linuxu skutečně procesy jádra?