πΉ ΠΠ°ΠΊ threading, GIL ΠΈ asyncio Π²Π»ΠΈΡΡΡ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°? πΈ threading Π½ΡΠΆΠ΅Π½, ΡΡΠΎΠ±Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ I/O (input/output); Π±Π΅Π· Π½Π΅Π³ΠΎ ΡΠ΅ΡΡ ΠΈΠ»ΠΈ Π΄ΠΈΡΠΊ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ. πΈ GIL (Global Interpreter Lock) β ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ CPython, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΡ Π΄Π»Ρ CPU (Central Processing Unit)-bound Π·Π°Π΄Π°Ρ; Π΄Π»Ρ ΡΡΠΆΡΠ»ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π²ΡΠ±ΠΈΡΠ°ΠΉ multiprocessing ΠΈΠ»ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. πΈ asyncio ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
I/O: ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΡΠΉ ΡΠΈΠΊΠ» ΠΈ ΠΊΠΎΡΡΡΠΈΠ½Ρ Π΄Π°ΡΡ ΠΌΠ΅Π½ΡΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ ΡΠΎΡΠ½ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ². πΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ: ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅ΡΡΠΉ; ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ threading Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ I/O, asyncio Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ I/O, multiprocessing Π΄Π»Ρ CPU-bound; ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΉΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ. π ΠΡΠ°ΠΊΡΠΈΠΊΠ°: Π·Π°ΠΌΠ΅Π½ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ threading-ΡΠΊΡΠΈΠΏΡ Π½Π° asyncio ΠΈ ΡΡΠ°Π²Π½ΠΈ Π²ΡΠ΅ΠΌΡ β ΡΠ°ΠΊ Π±ΡΡΡΡΠ΅Π΅ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅. #CODERIKK #Result #Junior β‘οΈ ΠΡ Π² Telegram - Π‘Π΅ΡΠΊΠ΅ - ΠΠ·Π΅Π½ ΠΡΠ΄Ρ ΡΠ°Π΄ Π²Π°ΡΠ΅ΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π·Π΄Π΅ΡΡβ¬οΈ
πΉ ΠΡΠΎΠ³ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ: ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ΅ΡΠ°ΠΡΠ΅ΡΠ°
~1 ΠΌΠΈΠ½