ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ subinterpreters (PEP 554 / PEP 684). ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ Π±Π΅Π· ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ GIL ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. π ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: π΅Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ subinterpreterβΠ°ΠΌΠΈ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° π΅ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ (ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅) π΅ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ CPU-bound Π·Π°Π΄Π°Ρ π΅ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ per-interpreter GIL (Python 3.12+) π΅ΠΠΎΠ»Π΅Π΅ Π»ΡΠ³ΠΊΠΈΠΉ ΠΏΠΎ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ multiprocessing π΅ΠΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² π΅ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ β‘οΈΠ£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: pip install multivisor π± Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ β‘οΈΠ‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. ΠΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ
π» Multivisor β ΡΡΠΎ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ CPython Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Ρ
6Β ΠΌΠ°ΡΡΠ°6Β ΠΌΠ°Ρ
3
~1 ΠΌΠΈΠ½