James Cutajar

#Concurrency
#Go
#Concurrent_Programming
همزمانی نباید گیجکننده باشد.
شروع به نوشتن کدی همزمان کنید که عملکرد را بهبود میدهد، قابلیت مقیاسپذیری دارد تا حجم بالای داده را پردازش کند، و از توان سختافزارهای چندپردازندهای مدرن بهخوبی بهره میبرد.
تعداد زیادی از توسعهدهندگان تصور میکنند برنامهنویسی همزمان کاری بسیار دشوار است.
کتاب «یادگیری برنامهنویسی همزمان با Go» آمده تا خلاف این را ثابت کند!
این کتاب با استفاده از ابزارهای ساده و قابل درک زبان Go، مفاهیم و تکنیکهای برنامهنویسی همزمان را آموزش میدهد و گامبهگام شما را با بهترین شیوههای نوشتن کدهای مؤثر همزمان آشنا میسازد.
تکنیکهایی که در این کتاب میآموزید، قابلیت انتقال و استفاده در زبانهای برنامهنویسی دیگر را نیز دارند.
در «یادگیری برنامهنویسی همزمان با Go» میآموزید:
پیادهسازی همزمانی مؤثر برای تولید نرمافزاری پاسخگوتر، سریعتر و مقیاسپذیرتر
اجتناب از مشکلات رایج همزمانی مانند بنبست (Deadlock) و شرایط رقابتی (Race Condition)
مدیریت همزمانی با استفاده از goroutineها، mutexها، قفلهای خواننده-نویسنده و سایر ابزارها
شناسایی الگوهای رایج همزمانی مانند خطوط پردازش (Pipelining)، تجمع کارگرها (Worker Pools) و ارسال پیام (Message Passing)
درک مزایا، محدودیتها و ویژگیهای محاسبات موازی (Parallel Computing)
ارتقای مهارت کدنویسی در Go با موضوعات پیشرفته در زمینه چندریسمانی (Multithreading)
برنامهنویسی همزمان این امکان را فراهم میسازد تا چند وظیفه بهطور همزمان اجرا و با یکدیگر تعامل داشته باشند؛ که این امر منجر به بهبود عملکرد برنامه و کاهش زمان انتظار کاربر میشود.
در این کتاب، اصول عمومی همزمانی را خواهید آموخت و یاد میگیرید چطور از آنها برای افزایش سرعت و کارایی در برنامههای Go استفاده کنید.
جیمز کوتاجار (James Cutajar) نویسندهی کتاب، از مدلسازی ساده همزمانی آغاز میکند، تفاوت میان ارسال پیام و اشتراکگذاری حافظه را توضیح میدهد، و در ادامه به موضوعات پیشرفتهای همچون متغیرهای اتمیک (Atomic Variables) و فوتکسها (Futexes) میپردازد.
دربارهی تکنولوژی
شما میتوانید عملکرد و پاسخگویی تقریباً هر نرمافزاری را با افزودن همزمانی به کد آن بهبود دهید. این کتاب راهنمای شما برای این کار است!
از مفاهیم پایه شروع میکند و بهصورت گامبهگام مهارتهای لازم را در بستر موقعیتهای واقعی توسعه نرمافزار آموزش میدهد.
نویسنده با زبانی ساده و با استفاده از امکانات قدرتمند زبان Go، هر مفهوم را بهوضوح شرح میدهد.
دربارهی کتاب
یادگیری برنامهنویسی همزمان با Go یک معرفی کاربردی و عملی برای ساخت نرمافزارهای مبتنی بر سیستمهای چندپردازشی مدرن است.
در این کتاب میآموزید چگونه وظایف بزرگ را به بخشهای مستقل تقسیم کنید تا بهصورت همزمان اجرا شوند.
همچنین خواهید آموخت که چگونه با استفاده از قفلهای خواننده-نویسنده، سموفورها (Semaphores)، ارسال پیام و اشتراکگذاری حافظه الگوهای رایج همزمانی را در Go پیادهسازی کنید.
مهارتهایی که از این کتاب میآموزید بهراحتی قابل انتقال به زبانهای دیگر نیز هستند.
مطالب کلیدی کتاب
جلوگیری از بنبستها و شرایط رقابتی
ویژگیهای همزمانی در Go مانند goroutine، mutex، channel و غیره
الگوهای همزمانی مانند pipelining و worker pool
Concurrency doesn’t need to be confusing. Start writing concurrent code that improves performance, scales up to handle large volumes of data, and takes full advantage of modern multi-processor hardware.
Too many developers think concurrency is extremely challenging. Learn Concurrent Programming with Go is here to prove them wrong! This book uses the easy-to-grasp concurrency tools of the Go language to demonstrate principles and techniques, steadily teaching you the best practices of effective concurrency. Techniques learned in this book can be applied to other languages.
In Learn Concurrent Programming with Go you will learn how to:
Concurrent programming allows multiple tasks to execute and interact simultaneously, speeding up performance and reducing user wait time. In Learn Concurrent Programming with Go, you’ll discover universal principles of concurrency, along with how to use them for a performance boost in your Go applications. Expert author James Cutajar starts with the basics of modeling concurrency in your programs, demonstrates differences between message passing and memory sharing, and even introduces advanced topics such as atomic variables and futexes.
About the technology
You can improve almost any application’s performance and responsiveness by introducing concurrency into the codebase. This book will show you how! It starts with the basics of concurrent programming and builds your skills step by step by exploring scenarios you’ll face every day as a developer. Author James Cutajar explains each aspect of concurrency in plain language using the intuitive features baked into the Go language.
About the book
Learn Concurrent Programming with Go provides a practical, hands-on introduction to creating software for modern multiprocessor systems. In it, you’ll learn how to divide larger programming tasks into independent parts that can run simultaneously. You’ll use the Go language to implement common concurrency patterns by utilizing readers-writer locks, semaphores, message passing, and memory sharing. The skills you learn will easily transfer to other languages.
What's inside
About the reader
For programmers with basic knowledge of Go or another C-style language. No experience in concurrent programming required.
Table of Contents
PART 1 FOUNDATIONS
1 Stepping into concurrent programming
2 Dealing with threads
3 Thread communication using memory sharing
4 Synchronization with mutexes
5 Condition variables and semaphores
6 Synchronizing with waitgroups and barriers
PART 2 MESSAGE PASSING
7 Communication using message passing
8 Selecting channels
9 Programming with channels
PART 3 MORE CONCURRENCY
10 Concurrency patterns
11 Avoiding deadlocks
12 Atomics, spin locks, and futexes
About the Author
James Cutajar has been programming for more than 20 years. He’s an open source contributor, blogger, tech evangelist, Udemy instructor, and author.









