Stephen Cleary利用75个丰富实例解释了并行处理同步处理技术,书中使用了.NET 4.5和C# 5.0语言特性。作者Stephen Cleary拥有广泛的编程经验,涉及领域从ARM到Azure。他致力于开源软件开发,从Boost C++库开始,已经发布了多个自己的库和应用。
目錄:
Preface
1.Concurrency: An Overview
1.1.Introduction to Concurrency
1.2.Introduction to Asynchronous Programming
1.3.Introduction to Parallel Programming
1.4.Introduction to Reactive Programming Rx
1.5.Introduction to Dataflows
1.6.Introduction to Multithreaded Programming
1.7.Collections for Concurrent Applications
1.8.Modern Design
1.9.Summary of Key Technologies
2.Async Basics
2.1.Pausing for a Period of Time
2.2.Returning Completed Tasks
2.3.Reporting Progress
2.4.Waiting for a Set of Tasks to Complete
2.5.Waiting for Any Task to Complete
2.6.Processing Tasks as They Complete
2.7.Avoiding Context for Continuations
2.8.Handling Exceptions from async Task Methods
2.9.Handling Exceptions from async Void Methods
3.Parallel Basics
3.1.Parallel Processing of Data
3.2.Parallel Aggregation
3.3.Parallel Invocation
3.4.Dynamic Parallelism
3.5.Parallel LINQ
4.Dataflow Basics
4.1.Linking Blocks
4.2.Propagating Errors
4.3.Unlinking Blocks
4.4.Throttling Blocks
4.5.Parallel Processing with Dataflow Blocks
4.6.Creating Custom Blocks
5.Rx Basics
5.1.Converting .NET Events
5.2.Sending Notifications to a Context
5.3.Grouping Event Data with Windows and Buffers
5.4.Taming Event Streams with Throttling and Sampling
5.5.Timeouts
6.Testing
6.1.Unit Testing async Methods
6.2.Unit Testing async Methods Expected to Fail
6.3.Unit Testing async void Methods
6.4.Unit Testing Dataflow Meshes
6.5.Unit Testing Rx Observables
6.6.Unit Testing Rx Observables with Faked Scheduling
7.Interop
7.1.Async Wrappers for "Async" Methods with "Completed" Events
7.2.Async Wrappers for "BeginEnd" methods
7.3.Async Wrappers for Anything
7.4.Async Wrappers for Parallel Code
7.5.Async Wrappers for Rx Observables
7.6.Rx Observable Wrappers for async Code
7.7.Rx Observables and Dataflow Meshes
8.Collections
8.1.Immutable Stacks and Queues
8.2.Immutable Lists
8.3.Immutable Sets
8.4.Immutable Dictionaries
8.5.Threadsafe Dictionaries
8.6.Blocking Queues
8.7.Blocking Stacks and Bags
8.8.Asynchronous Queues
8.9.Asynchronous Stacks and Bags
8.10.BlockingAsynchronous Queues
9.Cancellation
9.1.Issuing Cancellation Requests
9.2.Responding to Cancellation Requests by Polling
9.3.Canceling Due to Timeouts
9.4.Canceling async Code
9.5.Canceling Parallel Code
9.6.Canceling Reactive Code
9.7.Canceling Dataflow Meshes
9.8.Injecting Cancellation Requests
9.9.Interop with Other Cancellation Systems
10.Functional-Friendly OOP
10.1.Async Interfaces and Inheritance
10.2.Async Construction: Factories
10.3.Async Construction: The Asynchronous Initialization Pattern
10.4.Async Properties
10.5.Async Events
10.6.Async Disposal
11.Synchronization
11.1.Blocking Locks
11.2.Async Locks
11.3.Blocking Signals
11.4.Async Signals
11.5.Throttling
12.Scheduling
12.1.Scheduling Work to the Thread Pool
12.2.Executing Code with a Task Scheduler
12.3.Scheduling Parallel Code
12.4.Dataflow Synchronization Using Schedulers
13.Scenarios
13.1.Initializing Shared Resources
13.2.Rx Deferred Evaluation
13.3.Asynchronous Data Binding
13.4.Implicit State
index