GNU/Linux >> Belajar Linux >  >> Linux

Apakah utas memiliki tumpukan yang berbeda?

Secara default, C hanya memiliki satu heap.

Yang mengatakan, beberapa pengalokasi yang sadar thread akan mempartisi heap sehingga setiap thread memiliki area sendiri untuk dialokasikan. Idenya adalah ini akan membuat skala heap menjadi lebih baik.

Salah satu contoh tumpukan tersebut adalah Timbunan.


Tidak. Semua utas berbagi tumpukan yang sama.

Setiap utas memiliki tumpukan pribadi, yang dapat ditambahkan dan dihapus dengan cepat dari item. Ini membuat memori berbasis tumpukan menjadi cepat, tetapi jika Anda menggunakan terlalu banyak memori tumpukan, seperti yang terjadi pada rekursi tak terbatas, Anda akan mendapatkan tumpukan berlebih.

Karena semua utas berbagi tumpukan yang sama, akses ke pengalokasi/deallokasi harus disinkronkan. Ada berbagai metode dan pustaka untuk menghindari pertentangan pengalokasi.

Beberapa bahasa memungkinkan Anda membuat kumpulan memori pribadi, atau heap individual, yang dapat Anda tetapkan ke satu utas.


Linux
  1. Apakah Kami Memiliki Undo Di Linux?

  2. Apakah Curl Memiliki Timeout?

  3. Pengantar Utas Linux – Bagian I

  1. Cara mencetak pthread_t

  2. Thread ID vs Thread Handle

  3. Apakah Python memiliki argumen argc?

  1. Cara Membuat Thread di Linux (Dengan Program Contoh C)

  2. Apakah Python memiliki sinkronisasi?

  3. Apakah fopen() fungsi thread safe di Linux?