Using Concurrency and Parallelism Effectively – I (2nd edition)
Publisher: Bookboon.com
Published: 2015
ISBN-13: 9788740310382
Table of contents: title: Content; title: 1. A Challenge – Thinking Parallel; title: 1.1. Concurrency and Parallelism; title: 1.2. Why Parallel?; title: 1.3. A Multi-player Game Scenario; title: 1.4. The Basic Concepts; title: 1.5. Summary; title: 2. Producer Consumer: A Fundamental Design Pattern; title: 2.1. A Parallel Hello World; title: 2.2. Hello Name; title: 2.3. Processing Simple Streams of Data; title: 2.4. Summary; title: 2.5. Exercises; title: 3. Process Networks: Build It Like Lego; title: 3.1. Prefix Process; title: 3.2. Successor Process; title: 3.3. Parallel Copy; title: 3.4. Generating a Sequence of Integers; title: 3.5. Testing GNumbers; title: 3.6. Creating a Running Sum; title: 3.7. Generating the Fibonacci Sequence; title: 3.8. Generating Squares of Numbers; title: 3.9. Printing in Parallel; title: 3.10. Summary; title: 3.11. Exercises; title: 4. Parallel Processes: Non Deterministic Input; title: 4.1. Reset Numbers; title: 4.2. Exercising ResetNumbers; title: 4.3. Summary; title: 4.4. Exercises; title: 5. Extending the Alternative: A Scaling Device and Queues; title: 5.1. The Scaling Device Definition; title: 5.2. Managing A Circular Queue Using Alternative Pre-conditions; title: 5.3. Summary; title: 5.4. Exercises; title: 6. Testing Parallel Systems: First Steps; title: 6.1. Testing Hello World; title: 6.2. Testing the Queue Process; title: 6.3. The Queue Test Script; title: 6.4. Summary; title: 6.5. Exercises; title: 7. Deadlock: An Introduction; title: 7.1. Deadlocking Producer and Consumer; title: 7.2. Multiple Network Servers; title: 7.3. Summary; title: 7.4. Exercises; title: 8. Client-Server: Deadlock Avoidance by Design; title: 8.1. Analysing the Queue Accessing System; title: 8.2. Client and Server Design Patterns; title: 8.3. Analysing the Crossed Servers Network; title: 8.4. Deadlock Free Multi-Client and Servers Interactions; title: 8.5. Summary; title: 8.6. Exercises; title: 9. External Events: Handling Data Sources; title: 9.1. An Event Handling Design Pattern; title: 9.2. Utilising the Event Handing Pattern; title: 9.3. Analysing Performance Bounds; title: 9.4. Simple Demonstration of the Event Handling System; title: 9.5. Processing Multiple Event Streams; title: 9.6. Summary; title: 9.7. Exercises; title: 10. Deadlock Revisited: Circular Structures; title: 10.1. A First Sensible Attempt; title: 10.2. An Improvement; title: 10.3. A Final Resolution; title: 10.4. Summary; title: 11. Graphical User Interfaces: Brownian Motion; title: 11.1. Active AWT Widgets; title: 11.2. The Particle System – Brownian Motion; title: 11.3. Summary; title: 11.4. Exercises; title: 12. Dining Philosophers: A Classic Problem; title: 12.1. Naïve Management; title: 12.2. Proactive Management; title: 12.3. A More Sophisticated Canteen; title: 12.4. Summary; title: 13. Accessing Shared Resources: CREW; title: 13.1. CrewMap; title: 13.2. The DataBase Process; title: 13.3. The Read Clerk Process; title: 13.4. The Write Clerk Process; title: 13.5. The Read Process; title: 13.6. The Write Process; title: 13.7. Creating the System; title: 13.8. Summary; title: 13.9. Challenge; title: 14. Barriers and Buckets: Hand-Eye Co-ordination Test; title: 14.1. Barrier Manager; title: 14.2. Target Controller; title: 14.3. Target Manager; title: 14.4. Target Flusher; title: 14.5. Display Controller; title: 14.6. Gallery; title: 14.7. Mouse Buffer; title: 14.8. Mouse Buffer Prompt; title: 14.9. Target Process; title: 14.10. Running the System; title: 14.11. Summary