
پاسخ تمرین ۱ – انواع برنامههای Concurrent
موازی (Parallel)
در این نوع برنامه نویسی، کد ها به صورت کاملا موازی در یک لحظه اجرا میشوند.
در این نوع برنامهنویسی، کد ها به صورت موازی در یک لحظه به صورت همزمان در حال اجرا هستند.

همزمان (Concurrent)
در این نوع برنامهنویسی، کد ها به صورت همزمان اجرا میشوند اما اجرای آنها به صورت موازی نیست. اجرا بدین شکل است که بخشی از یک کد اجرا میشود و باقی کد ها منتظر میمانند تا اجرا به اندازه کافی پیش برود. سپس کد دیگری اجرا شده و کد قبلی تا هرجایی که اجرا شده باشد متوقف میشود. این روند آنقدر ادامه مییابد تا اجرای همه کد ها به پایان برسد.

پاسخ تمرین ۲ – تفاوت های Concurrent و Parallel
در حالت Parallel کد ها واقعا به صورت موازی و همزمان اجرا میشوند، بدین شکل که هر کد روی یک هسته از CPU اجرا میشود. اما در حالت Concurrent کد ها روی یک هسته از CPU به صورت همزمان اجرا میشوند (نه به صورت موازی)
پاسخ تمرین ۳ – ماژولهای Parallel Programming
در حال حاضر (تا نسخه ۳.۱۴ پایتون) تنها ماژولی که به صورت پیشفرض این امکان را فراهم میکند multiprocessing است.
در نسخه ۳.۱۳ پایتون، برای اولین بار، این امکان به ماژول threading نیز افزوده شد اما این امکان در پایتون ۳.۱۳ و ۳.۱۴ به صورت پیشفرض غیر فعال است.
پاسخ تمرین ۴ – ماژولهای Concurrent Programming
ماژول threading تا قبل از پایتون ۳.۱۳ صرفا برای Concurrent Programming استفاده میشدند اما از نسخه ۳.۱۳ به بعد هم میتوان برای Concurrent Programming از آن استفاده کرد و هم برای Parallel Programming. البته همچنان در نسخه ۳.۱۳ و ۳.۱۴، به صورت پیشفرض، این ماژول برای Concurrent Programming استفاده میشود.
همچنین ماژول _thread و asyncio نیز برای Concurrent Programming استفاده میشوند.