Using Concurrency and Parallelism Effectively – I
Publisher: Bookboon.com
Published: 2013
ISBN-13: 9788740308020
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: 2.6. Process Networks: Build It Like Lego; title: 2.7. Prefix Process; title: 2.8. Successor Process; title: 2.9. Parallel Copy; title: 2.10. Generating a Sequence of Integers; title: 2.11. Testing GNumbers; title: 2.12. Creating a Running Sum; title: 2.13. Generating the Fibonacci Sequence; title: 2.14. Generating Squares of Numbers; title: 2.15. Printing in Parallel; title: 2.16. Summary; title: 2.17. Exercises; title: 3. Parallel Processes: Non Deterministic Input; title: 3.1. Reset Numbers; title: 3.2. Exercising ResetNumbers; title: 3.3. Summary; title: 3.4. Exercises; title: 4. Extending the Alternative: A Scaling Device and Queues; title: 4.1. The Scaling Device Definition; title: 4.2. Managing A Circular Queue Using Alternative Pre-conditions; title: 4.3. Summary; title: 4.4. Exercises; title: 5. Testing Parallel Systems: First Steps; title: 5.1. Testing Hello World; title: 5.2. Testing the Queue Process; title: 5.3. The Queue Test Script; title: 5.4. Summary; title: 5.5. Exercises; title: 6. Deadlock: An Introduction; title: 6.1. Deadlocking Producer and Consumer; title: 6.2. Multiple Network Servers; title: 6.3. Summary; title: 6.4. Exercises; title: 7. Client-Server: Deadlock Avoidance by Design; title: 7.1. Analysing the Queue Accessing System; title: 7.2. Client and Server Design Patterns; title: 7.3. Analysing the Crossed Servers Network; title: 7.4. Deadlock Free Multi-Client and Servers Interactions; title: 7.5. Summary; title: 7.6. Exercises; title: 8. External Events: Handling Data Sources; title: 8.1. An Event Handling Design Pattern; title: 8.2. Utilising the Event Handing Pattern; title: 8.3. Analysing Performance Bounds; title: 8.4. Simple Demonstration of the Event Handling System; title: 8.5. Processing Multiple Event Streams; title: 8.6. Summary; title: 8.7. Exercises; title: 9. Deadlock Revisited: Circular Structures; title: 9.1. A First Sensible Attempt; title: 9.2. An Improvement; title: 9.3. A Final Resolution; title: 9.4. Summary; title: 10. Graphical User Interfaces: Brownian Motion; title: 10.1. Active AWT Widgets; title: 10.2. The Particle System – Brownian Motion; title: 10.3. Summary; title: 10.4. Exercises; title: 11. Dining Philosophers: A Classic Problem; title: 11.1. Naïve Management; title: 11.2. Proactive Management; title: 11.3. A More Sophisticated Canteen; title: 11.4. Summary; title: 12. Accessing Shared Resources: CREW; title: 12.1. CrewMap; title: 12.2. The DataBase Process; title: 12.3. The Read Clerk Process; title: 12.4. The Write Clerk Process; title: 12.5. The Read Process; title: 12.6. The Write Process; title: 12.7. Creating the System; title: 12.8. Summary; title: 12.9. Challenge; title: 13. Barriers and Buckets: Hand-Eye Co-ordination Test; title: 13.1. Barrier Manager; title: 13.2. Target Controller; title: 13.3. Target Manager; title: 13.4. Target Flusher; title: 13.5. Display Controller; title: 13.6. Gallery; title: 13.7. Mouse Buffer; title: 13.8. Mouse Buffer Prompt; title: 13.9. Target Process; title: 13.10. Running the System; title: 13.11. Summary