Teknologian jakaminen

Kuinka suuri lankapino on Androidissa? Missä se on asetettu?

2024-07-11

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

Androidissa säikeen pinon koko voi vaihdella eri Android-versioiden ja säietyyppien mukaan (kuten pääsäie vs. alasäie). Seuraavassa on yksityiskohtainen vastaus lankapinon koosta Androidissa ja sen asettamiseen:

Lankapinon koko

  1. Päälangan pinon koko
    • Oletusarvoisesti Android-pääsäikeen pinokoko on yleensä8 Mt . Tämä on alkuperäinen pinotila, jonka järjestelmä varaa pääsäikeelle, jota käytetään tallentamaan tietoja, kuten menetelmäkutsuprosessi, paikalliset muuttujat ja operandipinot.
  2. Lapsilankapinon koko
    • Alatason ketjun pinokoko on suhteellisen pieni, ja tarkka koko riippuu Android-versiosta.Esimerkiksi Android 6.0/7.0:ssa alatason ketjun pinokoko (mukaan lukien GUARD-alue) on noin1016 kt;Android 8.0:ssa alatason ketjun pinokoko (mukaan lukien GUARD-alue) on noin1008 ktAndroid 9.0:ssa ja uudemmissa versioissa aliketjun pinokoko (pois lukien GUARD-alue) on noin1008 kt, mutta mmap:n (mukaan lukien STACK ja GUARD) myöntämä kokonaiskoko on1012 kttai1016 kt

Aseta lankapinon koko

Androidissa voit asettaa säikeen pinon koon kutsumalla POSIX-säiekirjaston (pthread) asianmukaisia ​​toimintoja. Näitä toimintoja käytetään yleensä C- tai C-koodissa, koska monet Androidin taustalla olevat mekanismit perustuvat näihin kieliin.

  1. Toiminto lankapinon koon asettamiseen
    • pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize): Tätä toimintoa käytetään säiettäattribuuttiobjektin asettamiseenattrpinon koko sisäänstacksize
    • Käytössäpthread_createEnnen kuin luot ketjun, sinun on soitettavapthread_attr_initAlusta säikeen ominaisuudet -objekti ja käytä sittenpthread_attr_setstacksizeAseta pinon koko ja luo lopuksi säie set property -objektin avulla.
  2. Esimerkkikoodi
     

    c

    #include