Kuris yra geresnis kelių procesų ar kelių gijų apdorojimas Python?
Kuris yra geresnis kelių procesų ar kelių gijų apdorojimas Python?

Video: Kuris yra geresnis kelių procesų ar kelių gijų apdorojimas Python?

Video: Kuris yra geresnis kelių procesų ar kelių gijų apdorojimas Python?
Video: threading vs multiprocessing in python 2024, Lapkritis
Anonim

The sriegimas modulis naudoja gijas, daugiafunkcinis apdorojimas modulis naudoja procesus. Skirtumas tas, kad gijos veikia toje pačioje atminties erdvėje, o procesai turi atskirą atmintį. Dėl to šiek tiek sunkiau dalytis objektais tarp procesų daugiafunkcinis apdorojimas . Neršto procesai yra šiek tiek lėtesni nei siūlų neršto.

Atitinkamai, kuris yra geresnis kelių apdorojimo ar kelių gijų?

Pagrindinis skirtumas tarp daugiafunkcinis apdorojimas ir daugiasriegis ar tai daugiafunkcinis apdorojimas leidžia sistemai prie sistemos pridėti daugiau nei du CPU, tuo tarpu daugiasriegis leidžia procesui generuoti kelios gijos padidinti sistemos skaičiavimo greitį.

Taip pat galima paklausti, kokie yra kelių gijų, o ne kelių procesų, naudojimo pranašumai? Todėl, daugiasriegis programos gali veikti daug greičiau nei vienprocesorinėje sistemoje. Jie taip pat gali būti greitesni nei programa naudojant kelis procesus , nes gijos reikalauja mažiau išteklių ir sukuria mažiau papildomų išlaidų.

Be to, ar „Python“tinka kelių gijų kūrimas?

„CPython“programoje dėl „Global Interpreter Lock“gali būti vykdoma tik viena gija Python kodą iš karto (net jei tam tikros į našumą orientuotos bibliotekos gali įveikti šį apribojimą). Tačiau sriegimas vis tiek yra tinkamas modelis, jei norite vienu metu vykdyti kelias įvesties/išvesties užduotis.

Ar kelių gijų naudojimas yra geras?

Daugialypis sriegis nėra a Gerai idėja, jei reikia garantuoti tikslų fizinį laiką (kaip jūsų pavyzdyje). Kiti trūkumai apima intensyvų keitimąsi duomenimis tarp gijų. Aš sakyčiau kelių sriegių yra Gerai tikrai lygiagrečioms užduotims, jei jums nelabai rūpi jų santykinis greitis / prioritetas / laikas.

Rekomenduojamas: