Junior — Middle
95
Python-да параллелизм мен асинхрондылықты жүзеге асыру әдістері мен құралдары қандай?
Сұралған компаниялар
Стилсофт
AI-дан жауап
sobes.tech AI
Python-да параллелизм мен асинхрондылықты жүзеге асыру үшін бірнеше негізгі тәсілдер пайдаланылады:
- Көпжолды (threading) — бір процесте бірнеше ағынды іске қосуға мүмкіндік береді. CPython-да GIL (Global Interpreter Lock) болғандықтан, ағындар бір уақытта байт-кодты орындамайды, сондықтан көпжолды енгізу-шығу операциялары көп қолданылатын тапсырмалар үшін тиімді.
import threading
def worker():
print("Ағында жұмыс")
thread = threading.Thread(target=worker)
thread.start()
thread.join()
- Көппроцестік (multiprocessing) — әрқайсысы өз жадысы бар жеке процестерді құрады, бұл GIL шектеуін айналып өтуге және бірнеше CPU ядроларын тиімді пайдалануға мүмкіндік береді.
from multiprocessing import Process
def worker():
print("Процесте жұмыс")
process = Process(target=worker)
process.start()
process.join()
- Асинхронды бағдарламалау (asyncio) — корутиндер, оқиғалар циклі және
async/awaitкілт сөздерін пайдаланып, блокталмайтын код жазуға мүмкіндік береді. Бұл көп мөлшердегі енгізу-шығу операциялары үшін қолайлы.
import asyncio
async def main():
print("Бастау")
await asyncio.sleep(1)
print("Аяқтау")
asyncio.run(main())
- Кітапханалар мен фреймворктер — мысалы,
concurrent.futuresағындар мен процестермен жұмыс істеу үшін,geventнемесеtwisted— кооперативті көп тапсырмалық үшін.
Таңдау әдісі тапсырмаға байланысты: CPU-интенсивті — multiprocessing, I/O — threading немесе asyncio.