Mastering Concurrency in Python
پایتون، یکی از محبوبترین زبانهای برنامه نویسی است که با کتابخانهها و چارچوبهای بی شماری همراه است که محاسبات با کارایی بالا را تسهیل میکنند. همزمانی و موازی سازی در پایتون، وقتی ضروری هستند که صحبت از چند پردازشی و چند نخی به میان آید؛ آنها متفاوت رفتار میکنند، اما هدف مشترک آنها کاهش زمان اجرا است. این کتاب به عنوان مقدمه ای جامع در مورد مفاهیم پیشرفته مختلف در مهندسی و برنامه نویسی همزمان است.
کتاب Mastering Concurrency در پایتون، با معرفی مفاهیم و اصول همزمانی شروع میشود. این کتاب، قانون امدال، برنامه نویسی چند نخی به همراه برنامه برنامه نویسی چند پردازشی، وب اسکرپینگ، I/Oهای آسنکرون و مشکلات رایجی که مهندسین و برنامه نویسان به صورت روزمره در برنامه نویسی concurrent با آن روبرو میشوند را بررسی کرده است. در ادامه، این کتاب چندین مفاهیم پیشرفته در همزمانی پایتون و نحوه تعامل آنها با اکوسیستم پایتون از جمله قفل مترجم جهانی (GIL) را شامل میشود.
در آخر، از طریق مثالهای مختلف میآموزید که چگونه مشکلات همزمانی در دنیای واقعی را حل کنید.
مطالبی که در کتاب همزمانی در پایتون، خواهید آموخت:
- بررسی مفاهیم همزمانی در برنامه نویسی
- بررسی گرامر و قابلیتهای اصلی همزمانی در پایتون
- تجزیه و تحلیل مشکلات رایجی که در برنامه نویسی همزمان، با آن روبرو میشوید
- استفاده از application scaffolding برای طراحی برنامه هایی با مقیاس پذیری بالا
Table of Contents
Concurrent and Parallel Programming - An Advanced Introduction
Amdahl's Law
Working with Threads in Python
Using the 'with' Statement in Threads
Concurrent Web Scraping
Working with Processes in Python
The Reduction Operation in Processes
Concurrent Image Processing
Introduction to Asynchronous I/O
Asyncio: Pros and Cons
TCP with Asyncio
Deadlock
Starvation
Race Conditions
The Global Interpreter Lock
Designing Lock-Free and Lock-Based Concurrent Data Structures
Memory Models and Operations on Atomic Types
Building a Server from Scratch
Testing, Debugging, and Scheduling Concurrent Applications