Er Python god til samtidighed?
Er Python god til samtidighed?

Video: Er Python god til samtidighed?

Video: Er Python god til samtidighed?
Video: Java On Conference 2022, JDK 19, Spring Framework 6 and Spring Boot 3 [MJC News #11] 2024, November
Anonim

Python er ikke meget godt til CPU-bundet samtidig programmering. GIL'en vil (i mange tilfælde) få dit program til at køre, som om det kørte på en enkelt kerne - eller endnu værre. Hvis din ansøgning er I/O-bundet, Python kan være en seriøs løsning, da GIL'en normalt frigives, mens du blokerer opkald.

Også at vide er, understøtter Python samtidighed?

Det gør Python har indbyggede biblioteker til de mest almindelige samtidig programmeringskonstruktioner - multiprocessing og multithreading. Årsagen er multithreading Python er ikke rigtig multithreading på grund af GIL i Python.

Man kan også spørge, hvorfor multithreading ikke er muligt i python? CPython-tolken (for ren Python kode) vil tvinge GIL til at blive frigivet for hver hundrede byte kodeinstruktioner. Det tillader simpelthen kun en tråd at køre på én gang i tolken. Altså multiprocessing ikke multithreading giver dig mulighed for at opnå ægte samtidighed.

Efterfølgende er spørgsmålet, er Python god til multithreading?

Python tillader ikke flertrådet i ordets sandeste betydning. Den har en flertrådet pakke, men hvis du vil multi-tråd for at fremskynde din kode, så er det normalt ikke en godt idé at bruge det. Python har en konstruktion kaldet Global Interpreter Lock (GIL).

Hvilket modul kan bruges til at implementere samtidighed i Python 3?

Det samtidig . futures modul blev tilføjet Python 3.2. Ifølge Python dokumentation det giver udvikleren en grænseflade på højt niveau til asynkron eksekvering af callables.

Anbefalede: