توضیحاتی در مورد کتاب High-Performance Java Platform Computing: Multithreaded and Networked Programming
نام کتاب : High-Performance Java Platform Computing: Multithreaded and Networked Programming
ویرایش : 1st
عنوان ترجمه شده به فارسی : رایانش پلت فرم جاوا با کارایی بالا: برنامه نویسی چند رشته ای و شبکه ای
سری :
نویسندگان : Thomas W. Christopher, George K. Thiruvathukal
ناشر : Prentice Hall PTR
سال نشر : 2000
تعداد صفحات : 421
ISBN (شابک) : 0130161640 , 9780130161642
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 12 مگابایت
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
توضیحاتی در مورد کتاب :
Threading و همزمانی برای ساخت برنامه های جاوا با کارایی بالا بسیار مهم هستند - اما آنها به پیچیدگی شهرت دارند. رایانش جاوا با کارایی بالا به طور کامل این تکنیک های توسعه پیشرفته را از بین می برد. راهحلهای برنامهنویسی عملی، الگوهای طراحی اثباتشده، و یک کتابخانه کد کاملاً آزمایششده را ارائه میدهد - همه چیزهایی که توسعهدهندگان برای ساختن نرمافزار جاوا بهینهشده برای برنامههای فنی، تجاری و تجارت الکترونیک نیاز دارند. با درک اینکه چگونه رشته و همزمانی میتواند برای حل طیف گستردهای از مشکلات عملکرد استفاده شود، شروع کنید و ساخت برنامههای شبکهای قدرتمندتر را ممکن میسازد. بر کلاسهای Java 2 Threads، از جمله موضوعات daemon، کنترل رشتهها، زمانبندی و غیره مسلط شوید. مشکلات کلیدی موازیسازی - از جمله بنبستها، شرایط مسابقه، و هماهنگسازی - را مرور کنید و تکنیکهای اثباتشده برای اجتناب یا حل آنها را کشف کنید. در نهایت، بر تکنیک های پیشرفته برای ساخت کد همزمان بهینه سازی شده، از جمله مانیتورهای جاوا، اجرای موازی زیر روال ها در حافظه مشترک و حلقه های موازی مسلط شوید.
فهرست مطالب
پوشش
فهرست
فصل 1: مبانی
ماشین فون نویمان
طبقه بندی فلین
تاکسونومی کنترل-حافظه
سرعت و کارایی
قانون امدال
مقیاس پذیری
مشکلات موازی سازی
اندازه دانه
گرسنگی
بن بست
سیل و گلوگاه
چیدمان
تاخیر
برنامه ریزی
تکنیک های برنامه نویسی
جمع بندی فصل
تمرینات
فصل 2: رشته ها
چرا Multithreading مفید است؟
مروری بر کلاس های Java Threads
Thread: کلاس مسئول ایجاد و اجرای Thread
Runnable: ساختن موضوعات بدون گسترش کلاس Thread
Hello World: اولین نمونه از Multithreading
پیاده سازی رابط ها و گسترش کلاس ها: معامله چیست؟
مفاهیم
کمی تاریخ
برخی از تعاریف
چند برنامه نویسی در مقابل چند وظیفه ای
o پشتیبانی جاوا برای چندبرنامهنویسی
همزمانی در مقابل توازی در مقابل توزیع
موضوعات در مقابل فرآیندها
o فرآیندهای یونیکس
سطح هسته در مقابل موضوعات سطح کاربر
گشت و گذار سریع توابع موضوعات جاوا
ساخت و ساز
موضوعات شبح
کنترل موضوع
روش های استاتیک بسیار مفید
همگام سازی موضوع
چندوظیفه ای تعاونی
برنامه ریزی اولویت بندی شده
روش های وضعیت متفرقه
روش هایی که در اینجا پوشش داده نمی شوند
تمرینات
فصل 3: شرایط نژاد و محرومیت متقابل
دشمنت را بشناس!
شرایط مسابقه
خودخواه: اولین مطالعه در شرایط مسابقه
سخنی در مورد اولویت ها
شرایط مسابقه چیست؟
کلاس Race0
بخش های بحرانی و قفل اشیاء
Race1 Class -- رفع Race0 با همگام سازی
شرایط
برانگیختن نیاز به شرایط
روش های کلیدی شی مورد نیاز برای کار با شرایط در جاوا
کپی کردن فایل: یک مثال تولیدکننده-مصرف کننده
Locks-Semaphores باینری: نمونه ای از استفاده از شرایط
Race2: Reworked Race1 با استفاده از قفل
مکانیزم های کلاسیک همگام سازی
شمارش سمافور
مانع
آینده
بن بست
بن بست چیست؟
چگونه بفهمیم چه زمانی بن بست به شما رسیده است؟
چهار شرط بن بست
یک مثال کلاسیک: فیلسوفان غذاخوری
جمع بندی فصل
تمرینات
فصل چهارم: مانیتورها
مانیتورهای واقعی و مانیتورهای جاوا
کلاس های مشترک
صف های صریح
به طور کلی
مانیتور کلاس در بسته Thread
روش های مانیتور
روش های رابط MonitorCondition
رابط MonitorLock
مثال هایی با استفاده از Monitor Objects
آینده ساده
SharedTableOfQueues
اجرای مانیتور، وضعیت و قفل مانیتور
نظارت بر ورود و خروج
مانیتور.وضعیت
مانیتور.قفل
مانیتورهای چندگانه خواننده-نویسنده
سیاست های
ورود و خروج از بخش های بحرانی
مانیتور تک خواننده-نویسنده
مانیتور ترجیحی خوانندگان
مانیتور مورد علاقه نویسندگان
مانیتور متناوب خوانندگان و نویسندگان
مانیتور Take-a-Number
جمع بندی فصل
تمرینات
فصل 5: اجرای موازی زیربرنامه ها در حافظه مشترک
ایجاد و پیوستن
مثال: ادغام عددی ذوزنقه ای
o اصول
o رابط
o کد
o بحث و گفتگو
RunQueue
روش های RunQueue
o مدیریت موضوعات ایجاد شده
o فسخ
o تنظیم maxThreadsCreated
o تنظیم maxThreadsWaiting
o تنظیم زمان انتظار
اجرای RunQueue
o فیلدها
o Xeqthreads
o در نوبت دادن به Runnables
o Dequeueing Runnables
Recursive Shell Sort: RunQueues و SimpleFutures
ShellsortDC
کلاس مرتب سازی ShellsortDC
آکومولاتور
عملیات انباشته
الگوهای استفاده از آکومولاتورها
o در انتظار تکمیل
o And or Or
o عملیات تداعی، جابجایی
o ساختارهای داده مشترک
استفاده از انباشته کننده ها
ادغام عددی
پایان گروه
جستجوی ترکیبی
مشکل 0-1 کوله پشتی
جستجوی عمق موازی ابتدا برای مشکل کوله پشتی
کوله پشتی 2
o سازنده
o روش gen()
o کلاس جستجو
o متدهای getSelected() و getProfit()
PriorityRunQueue
Branch-and-Bound با صف های اجرای اولویت
شاخه و محدود برای 0-1 کوله پشتی
o جستجوی کلاس
o کلاس SearchFactory
o سازنده
یک کوله پشتی 0-1 شاخه ای خالص تر
جمع بندی فصل
تمرینات
فصل 6: حلقه های موازی سازی
نمودارهای سخت
جمع آوری کارها در موضوعات
مثال: الگوریتم وارشال
برنامه ریزی ایستا
برنامه ریزی پویا
مثال: طولانی ترین دنباله متداول
مثال: مرتب سازی پوسته
کلاس ShellsortBarrier
مرتب سازی کلاس
کارایی
جمع بندی فصل
تمرینات
فصل 7: کارهای روزمره
رابط RunDelayed
آینده
FutureFactory
تکنیکهای برنامهنویسی سخت
کوزه های کار
نمودارهای سخت
ماکرو جریان داده
o نمودارهای کار جریان داده کلان
o سازنده های کار
o واکشی عملوندها
جریان کنترل
o تغییر صف های اجرا
o بیانیه سوئیچ
o یک شیء ادامه ایجاد کنید
o یک شیء ادامه محلی ایجاد کنید
مثالهای جریان داده کلان: جمع برداری
ادامه برای جدا کردن Operand Fetch از عملیات
سبک جریان داده ایستا و ذخیره عملوندها در دستورالعمل ها
واکشی در ادامه
مثال های سخت: الگوریتم وارشال
WarshallDF1 و الگوریتم Warshall در Dataflow
WarshallC1 تا WarshallC3: کارها، اما نه Dataflow
o WarshallC1
o WarshallC2
o WarshallC3
جمع بندی فصل
تمرینات
فصل 8: همگام سازی نخ و کار
پایان گروه
مانع
کارخانه سد
AccumulatorFactory
مرتب سازی سریع موازی
مرتب سازی روش()
QuickSortThread2
روش مرتب سازی سریع()
مرتب سازی پوسته
جمع بندی فصل
فصل 9: جداول مشترک صف
جداول اشتراکی صف
مواد و روش ها
پیاده سازی همگام سازی ها با استفاده از جدول مشترک صف ها
آتی به نام
با نام، سوابق قفل شده
به نام قفل
سمافورها به نام
صف های نامگذاری شده
کلیدهای نمایه شده
پیاده سازی همگام سازی بیشتر و ساختارهای مشترک
بافرهای محدود
ساختارهای I
موانع
اشیاء واکنشی
برقراری ارتباط از طریق یک جدول مشترک صف
بسته
مسدود کردن
کارایی
صف های آینده
مواد و روش ها
پیاده سازی FutureQueue
o رفتار مطلوب
o وضعیت های صف آینده
مثال FutureQueue: مانیتور خوانندگان-نویسندگان صف
o وضعیت مانیتور
جداول آینده
جمع بندی فصل
تمرینات
فصل 10: جریان های ضروری
انتزاع جریان ها
ساخت جریان خود را
رمز سزار: رمزگذاری بسیار اساسی
جمع بندی فصل
تمرینات
فصل یازدهم: شبکه سازی
کاوش در سمت مشتری
خدمات: داستان اینترنتی
مقصد Sendmail
شبکه جاوا: Socket و InetAddress
بسته های جاوا استفاده شده است
استفاده از OOP برای ایجاد رابط کاربری گرافیکی
سازنده
طرح بندی ها
رسیدگی به رویداد
ارسال نامه: مرز نهایی
خدمات کجا هستند؟
مقدمه ای مهربان و ملایم به سمت سرور
سرورهای تکراری
معماری پیام رسانی ساده
کلاس پیام
DateService و DateClient SMA Style
جمع بندی فصل
تمرینات
فصل دوازدهم: هماهنگی
فراخوان های صندوق پست عمومی
GMI: اهداف و طرح کلی
Callable: رابطی برای پذیرش ارتباط
CallMessage: یک کلاس انتزاعی برای Marshalling و Unmarshalling!
RemoteCallServer
RemoteCallServerDispatcher
RemoteCallClient
یادداشت: یک رابط راه دور برای SharedTableOfQueues
طرح
MemoServer
MemoClient
وکتور محصول داخلی
ادغام ذوزنقه ای
الگوریتم وارشال
جمع بندی فصل
تمرینات
فهرست مطالب
توضیحاتی در مورد کتاب به زبان اصلی :
Threading and concurrency are crucial to building high-performance Java applications -- but they have a reputation for complexity. High Performance Java Computing thoroughly demystifies these advanced development techniques. It delivers practical programming solutions, proven design patterns, and a rigorously-tested code library -- everything developers need to build optimized Java software for technical, business, and E-commerce applications. Start by understanding how threading and concurrency can be used to solve a wide variety of performance problems, enabling the construction of more powerful networked applications. Master the Java 2 Threads classes, including daemon threads, thread control, scheduling, and more. Review the key problems of parallelism -- including deadlocks, race conditions, and synchronization -- and discover proven techniques for avoiding or resolving them. Finally, master advanced techniques for building optimized concurrent code, including Java monitors, parallel execution of subroutines in shared memory, and parallelizing loops.
Table of Contents
Cover
Contents
Chapter 1: Foundations
The von Neumann Machine
Flynn's Taxonomy
Control-Memory Taxonomy
Speedup and Efficiency
Amdahl's Law
Scalability
Problems of Parallelism
Grain Size
Starvation
Deadlock
Flooding and Throttling
Layout
Latency
Scheduling
Programming Techniques
Chapter Wrap-up
Exercises
Chapter 2: Threads
Why is Multithreading Useful?
Overview of the Java Threads Classes
Thread: The Class Responsible for Thread Creation and Execution
Runnable: Making Threads Without Extending the Thread Class
Hello World: A First Example of Multithreading
Implementing Interfaces and Extending Classes: What's the Deal?
Concepts
A Little Bit of History
Some Definitions
Multiprogramming vs. Multitasking
o Java Support for Multiprogramming
Concurrency vs. Parallelism vs. Distribution
Threads vs. Processes
o Unix Processes
Kernel-level vs. User-level Threads
Quick Tour of Java Threads Functions
Construction
Daemon Threads
Thread Control
Very Useful Static Methods
Thread Synchronization
Cooperative Multitasking
Prioritized Scheduling
Miscellaneous Status Methods
Methods Not Covered Here
Exercises
Chapter 3: Race Conditions and Mutual Exclusion
Know Your Enemy!
Race Conditions
Egoist: A First Study in Race Conditions
A Word on Priorities
What is a Race Condition?
Race0 Class
Critical Sections and Object Locking
Race1 Class--Fixing Race0 with Synchronization
Conditions
Motivating the Need for Conditions
Key Object Methods Needed to Work with Conditions in Java
File Copying: A Producer-Consumer Example
Locks-Binary Semaphores: An Example of Using Conditions
Race2: Reworked Race1 Using Locks
Classic Synchronization Mechanisms
Counting Semaphore
Barrier
Futures
Deadlock
What is Deadlock?
How to Know When Deadlock Has Hit You?
Four Conditions of Deadlock
A Classic Example: Dining Philosophers
Chapter Wrap-up
Exercises
Chapter 4: Monitors
Real Monitors and Java Monitors
Shared Classes
Explicit Queues
Overall
Class Monitor in the Thread Package
Monitor's Methods
Interface MonitorCondition's Methods
Interface MonitorLock
Examples using Monitor Objects
SimpleFuture
SharedTableOfQueues
Implementation of Monitor, Condition, and MonitorLock
Monitor Entry and Exit
Monitor.Condition
Monitor.Lock
The Multiple Reader-Writer Monitors
Policies
Entering and Leaving the Critical Sections
The Single-Reader-Writer Monitor
The Readers-Preferred Monitor
The Writers-Preferred Monitor
The Alternating Readers-Writers Monitor
The Take-a-Number Monitor
Chapter Wrap-up
Exercises
Chapter 5: Parallel Execution of Subroutines in Shared Memory
Creating and Joining
Example: Trapezoidal Numeric Integration
o Principles
o Interface
o Code
o Discussion
RunQueue
RunQueue Methods
o Managing the created threads
o Termination
o Adjusting maxThreadsCreated
o Adjusting maxThreadsWaiting
o Adjusting waitTime
RunQueue Implementation
o Fields
o Xeqthreads
o Enqueueing Runnables
o Dequeueing Runnables
Recursive Shell Sort: RunQueues and SimpleFutures
ShellsortDC
ShellsortDC Sort class
Accumulator
Accumulator Operations
Patterns of Use of Accumulators
o Awaiting completion
o And or Or
o Associative, commutative operations
o Shared data structures
Using Accumulators
Numeric Integration
TerminationGroup
Combinatorial Search
The 0-1 Knapsack Problem
Parallel Depth-first Search for the Knapsack Problem
Knapsack2
o Constructor
o Method gen()
o The Search class
o Methods getSelected() and getProfit()
PriorityRunQueue
Branch-and-Bound with Priority Run Queues
Branch and Bound for 0-1 Knapsack
o Class Search
o Class SearchFactory
o Constructor
A Purer Branch-and-Bound 0-1 Knapsack
Chapter Wrap-up
Exercises
Chapter 6: Parallelizing Loops
Chore Graphs
Gathering Chores into Threads
Example: Warshall's Algorithm
Static Scheduling
Dynamic Scheduling
Example: Longest Common Subsequence
Example: Shell Sort
ShellsortBarrier class
Class Sort
Performance
Chapter Wrap-up
Exercises
Chapter 7: Chores
The RunDelayed Interface
Futures
FutureFactory
Chore-programming Techniques
Job Jars
Chore Graphs
Macro Dataflow
o Macro dataflow chore graphs
o Chore constructors
o Fetching operands
Flow of Control
o Changing run queues
o Switch statement
o Create a continuation object
o Create a local continuation object
Macro Dataflow Examples: Vector Addition
Continuations to Separate Operand Fetch from Operation
Static Dataflow Style and Storing Operands in Instructions
Fetching in continuations
Chore Examples: Warshall's Algorithm
WarshallDF1 and Warshall's Algorithm in Dataflow
WarshallC1 through WarshallC3: Chores, But not Dataflow
o WarshallC1
o WarshallC2
o WarshallC3
Chapter Wrap-up
Exercises
Chapter 8: Thread and Chore Synchronization
TerminationGroup
Barrier
BarrierFactory
AccumulatorFactory
Parallel Quicksort
Method sort()
QuickSortThread2
Method quicksort()
Shell Sort
Chapter Wrap-up
Chapter 9: Shared Tables of Queues
Shared Tables of Queues
Methods
Implementing Synchronizations Using a Shared Table of Queues
Named Futures
Named, Locked Records
Named Locks
Named Semaphores
Named Queues
Indexed Keys
Implementing More Synchronizations and Shared Structures
Bounded buffers
I-structures
Barriers
Reactive Objects
Communicating through a Shared Table of Queues
closure
Block
Performance
Future Queues
Methods
Implementation of FutureQueue
o Desired behavior
o States of the future queue
Example of FutureQueue: The Queued Readers-Writers Monitor
o State of the monitor
Future Tables
Chapter Wrap-up
Exercises
Chapter 10: Streams Essentials
The Streams Abstraction
Building Your Own Stream
Caesar Cipher: Very Basic Encryption
Chapter Wrap-Up
Exercises
Chapter 11: Networking
Exploring the Client Side
Services: The Internet Story
Destination Sendmail
Java Networking: Socket and InetAddress
Java packages used
The use of OOP to create the GUI
The constructor
Layouts
Event handling
Sending mail: the final frontier
Where are The Services?
A Kind and Gentle Introduction to the Server Side
Iterative Servers
Simple Messaging Architecture
The Message Class
DateService and DateClient SMA Style
Chapter Wrap-Up
Exercises
Chapter 12: Coordination
Generic Mailbox Invocations
GMI: Goals and Design Overview
Callable: An Interface for Accepting Communication
CallMessage: An Abstract Class for Marshalling and Unmarshalling!
RemoteCallServer
RemoteCallServerDispatcher
RemoteCallClient
Memo: A Remote Interface to SharedTableOfQueues
Design
MemoServer
MemoClient
Vector Inner Product
Trapezoidal Integration
Warshall's Algorithm
Chapter Wrap-up
Exercises
Index