מודלים של מקביליות
בתוכנה מודרנית יש לעיתים קרובות צורך לבצע משימות רבות בו-זמנית או לנהל הרבה פעולות באופן יעיל.
פייתון מספקת מספר מודלים של מקביליות:
- threading – חוטים (threads)
- multiprocessing – תהליכים נפרדים
- asyncio – תכנות אסינכרוני מבוסס אירועים (event loop)
לכל אחד מהם יתרונות, חסרונות ושימושים מתאימים.
GIL – נעילת המפרש הגלובלית
ב־CPython, ה־GIL מונע מהרצת מספר חוטים (threads) בו-זמנית על קוד פייתון.
זה מפשט את ניהול הזיכרון – אך מהווה צוואר בקבוק לתוכניות שמעמיסות על המעבד (CPU-bound).
התוצאה היא ש־threads לא יכולים לפעול במקביל אמיתי על כמה ליבות מעבד כאשר מדובר בקוד פייתון טהור.