Berbagi teknologi

Seberapa besar tumpukan thread di Android? Di mana pengaturannya?

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Di Android, ukuran tumpukan thread dapat bervariasi bergantung pada versi Android dan jenis thread yang berbeda (seperti thread utama vs. thread turunan). Berikut detail jawaban ukuran thread stack di Android dan cara settingnya:

Ukuran tumpukan benang

  1. Ukuran tumpukan thread utama
    • Secara default, ukuran tumpukan thread utama Android biasanya adalah8MB . Ini adalah ruang tumpukan awal yang dialokasikan oleh sistem ke thread utama, yang digunakan untuk menyimpan informasi seperti proses pemanggilan metode, variabel lokal, dan tumpukan operan.
  2. Ukuran tumpukan benang anak
    • Ukuran tumpukan thread anak relatif kecil, dan ukuran spesifiknya bergantung pada versi Android.Misalnya, di Android 6.0/7.0, ukuran tumpukan thread anak (termasuk area GUARD) kira-kira1016 KB;Di Android 8.0, ukuran tumpukan thread anak (termasuk area GUARD) kira-kira1008 KB; Di Android 9.0 dan lebih tinggi, ukuran tumpukan thread anak (tidak termasuk area GUARD) adalah kira-kira1008 KB, tetapi ukuran total yang dialokasikan oleh mmap (termasuk STACK dan GUARD) adalah1012 KBatau1016 KB

Atur ukuran tumpukan benang

Di Android, Anda dapat mengatur ukuran tumpukan thread dengan memanggil fungsi yang relevan dari pustaka thread POSIX (pthread). Fungsi-fungsi ini biasanya digunakan dalam kode C atau C, karena banyak mekanisme yang mendasari Android didasarkan pada bahasa-bahasa ini.

  1. Berfungsi untuk mengatur ukuran tumpukan benang
    • pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize): Fungsi ini digunakan untuk mengatur objek atribut threadattrukuran tumpukan masukstacksize
    • Digunakanpthread_createSebelum membuat thread, Anda perlu meneleponpthread_attr_initInisialisasi objek properti thread dan kemudian gunakanpthread_attr_setstacksizeAtur ukuran tumpukan, dan terakhir buat thread menggunakan objek properti set.
  2. Kode sampel
     

    c

    #include