دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نويسي ویرایش: 1 نویسندگان: Joe Duffy سری: ISBN (شابک) : 032143482X, 9780321434821 ناشر: سال نشر: 2008 تعداد صفحات: 990 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 8 مگابایت
در صورت تبدیل فایل کتاب Concurrent Programming on Windows به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب برنامه نویسی همزمان در ویندوز نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
هنگامی که شروع به استفاده از چند رشته ای در یک برنامه می کنید، اهمیت معماری و طراحی تمیز بسیار مهم است. . . . این نه تنها بر درک قابلیتهای پلتفرم، بلکه همچنین بهترین شیوههای در حال ظهور تأکید دارد. جو کار بزرگی انجام می دهد و بهترین شیوه ها را در کنار نظریه در سراسر کتابش در هم می آمیزد." – از پیشگفتار کریگ موندی، مدیر ارشد تحقیقات و استراتژی، شرکت مایکروسافت نویسنده جو دافی به چالش توضیح نحوه نوشتن نرمافزاری که از همزمانی و موازیسازی سختافزار بهره میبرد، پاسخ داده است. در برنامهنویسی همزمان در ویندوز، او نحوه طراحی، پیادهسازی و نگهداری برنامههای همزمان در مقیاس بزرگ را توضیح میدهد که عمدتاً از C# و C++ برای ویندوز استفاده میکنند. دافی قصد دارد به توسعه دهندگان برنامه، سیستم و کتابخانه ابزارها و تکنیک های مورد نیاز برای نوشتن کد کارآمد و ایمن برای پردازنده های چند هسته ای را بدهد. این نه تنها برای انواع مشکلاتی که همزمانی ذاتی است و به راحتی قابل بهره برداری است - مانند برنامه های کاربردی سرور، دستکاری تصویر فشرده، تجزیه و تحلیل مالی، شبیه سازی ها و الگوریتم های هوش مصنوعی - بلکه برای مشکلاتی که می توان با استفاده از موازی سازی سرعت بخشید اما اهمیت دارد. نیاز به تلاش بیشتری دارد - مانند کتابخانههای ریاضی، روالهای مرتبسازی، تولید گزارش، دستکاری XML و الگوریتمهای پردازش جریانی. برنامه نویسی همزمان در ویندوز دارای چهار بخش اصلی است: بخش اول همزمانی را در سطح بالایی معرفی می کند و به دنبال آن بخشی که بر ویژگی های اساسی پلت فرم، عملکردهای داخلی و جزئیات API تمرکز دارد. بعد، بخشی وجود دارد که الگوهای رایج، بهترین شیوهها، الگوریتمها و ساختارهای دادهای که هنگام نوشتن نرمافزار همزمان پدیدار میشوند را توصیف میکند. بخش پایانی بسیاری از نگرانیهای معماری و فرآیندی برنامهنویسی همزمان در سراسر سیستم را پوشش میدهد. این تنها کتابی است که برای یادگیری بهترین شیوه ها و الگوهای رایج برای برنامه نویسی همزمان در ویندوز و دات نت نیاز دارید.
“When you begin using multi-threading throughout an application, the importance of clean architecture and design is critical. . . . This places an emphasis on understanding not only the platform’s capabilities but also emerging best practices. Joe does a great job interspersing best practices alongside theory throughout his book.” – From the Foreword by Craig Mundie, Chief Research and Strategy Officer, Microsoft Corporation Author Joe Duffy has risen to the challenge of explaining how to write software that takes full advantage of concurrency and hardware parallelism. In Concurrent Programming on Windows, he explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows. Duffy aims to give application, system, and library developers the tools and techniques needed to write efficient, safe code for multicore processors. This is important not only for the kinds of problems where concurrency is inherent and easily exploitable—such as server applications, compute-intensive image manipulation, financial analysis, simulations, and AI algorithms—but also for problems that can be speeded up using parallelism but require more effort—such as math libraries, sort routines, report generation, XML manipulation, and stream processing algorithms. Concurrent Programming on Windows has four major sections: The first introduces concurrency at a high level, followed by a section that focuses on the fundamental platform features, inner workings, and API details. Next, there is a section that describes common patterns, best practices, algorithms, and data structures that emerge while writing concurrent software. The final section covers many of the common system-wide architectural and process concerns of concurrent programming. This is the only book you’ll need in order to learn the best practices and common patterns for programming with concurrency on Windows and .NET.
Contents......Page 12
PART I - Concepts......Page 32
Why Concurrency?......Page 34
Program Architecture and Concurrency......Page 37
Layers of Parallelism......Page 39
Why Not Concurrency?......Page 41
Where Are We?......Page 42
2. Synchronization and Time......Page 44
Managing Program State......Page 45
Synchronization: Kinds and Techniques......Page 69
Where Are We?......Page 104
PART II - Mechanisms......Page 108
3. Threads......Page 110
Threading from 10,001 Feet......Page 111
The Life and Death of Threads......Page 120
Where Are We?......Page 155
Thread State......Page 158
Inside Thread Creation and Termination......Page 183
Thread Scheduling......Page 185
Where Are We?......Page 211
5. Windows Kernel Synchronization......Page 214
The Basics: Signaling and Waiting......Page 215
Using the Kernel Objects......Page 242
Where Are We?......Page 282
6. Data and Control Synchronization......Page 284
Mutual Exclusion......Page 286
Reader/Writer Locks (RWLs)......Page 318
Condition Variables......Page 335
Where Are We?......Page 343
7. Thread Pools......Page 346
Thread Pools 101......Page 347
Windows Thread Pools......Page 354
CLR Thread Pool......Page 395
Performance When Using the Thread Pools......Page 422
Where Are We?......Page 429
8. AsynchronousProgramming Models......Page 430
Asynchronous Programming Model (APM)......Page 431
Event- Based Asynchronous Pattern......Page 452
Where Are We?......Page 458
9. Fibers......Page 460
An Overview of Fibers......Page 461
Using Fibers......Page 466
Additional Fiber-Related Topics......Page 476
Building a User-Mode Scheduler......Page 484
Where Are We?......Page 504
PART III - Techniques......Page 506
10. Memory Models and Lock Freedom......Page 508
Memory Load and Store Reordering......Page 509
Hardware Atomicity......Page 517
Memory Consistency Models......Page 537
Examples of Low-Lock Code......Page 551
Where Are We?......Page 572
11. Concurrency Hazards......Page 576
Correctness Hazards......Page 577
Liveness Hazards......Page 603
Where Are We?......Page 640
12. Parallel Containers......Page 644
Fine-Grained Locking......Page 647
Lock Free......Page 663
Coordination Containers......Page 671
Where Are We?......Page 685
13. Data and Task Parallelism......Page 688
Data Parallelism......Page 690
Task Parallelism......Page 715
Message-Based Parallelism......Page 750
Cross-Cutting Concerns......Page 751
Where Are We?......Page 763
14. Performance and Scalability......Page 766
Parallel Hardware Architecture......Page 767
Speedup: Parallel vs. Sequential Code......Page 787
Spin Waiting......Page 798
Where Are We?......Page 812
PART IV - Systems......Page 814
15. Input and Output......Page 816
Overlapped I/O......Page 817
I/O Cancellation......Page 853
Where Are We?......Page 857
16. Graphical User Interfaces......Page 860
GUI Threading Models......Page 861
.NET Asynchronous GUI Features......Page 868
Where Are We?......Page 891
PART V - Appendices......Page 894
A. Designing Reusable Libraries for Concurrent .NET Programs......Page 896
The 20,000-Foot View......Page 897
The Details......Page 898
B. Parallel Extensions to .NET......Page 918
Task Parallel Library......Page 919
Parallel LINQ......Page 941
Synchronization Primitives......Page 946
Concurrent Collections......Page 955
Index......Page 962