Abstract
So far in this book you’ve seen functions and objects that process their inputs immediately using a single “thread” of execution where the code runs to completion and produces useful results or state changes. In this chapter, you’ll turn your attention to concurrent, parallel, asynchronous, and reactive programs. These each represent substantially different approaches to programming from those you’ve seen so far. Some of the reasons for turning to these techniques are as follows:
-
To achieve better responsiveness in a graphical user interface (GUI)
-
To report progress results during a long-running computation and to support cancellation of these computations
-
To achieve greater throughput in a reactive application or service
-
To achieve faster processing rates on a multiprocessor machine or cluster
-
To take advantage of the I/O parallelism available in modern disk drives or network connections
-
To sustain processing while network and disk I/O operations are in process In this chapter, we cover some of the techniques that can help achieve these outcomes:
-
Using .NET threads and the BackgroundWorker class for background computations
-
Using events and messages to report results back to a GUI
-
Using F# asynchronous workflows and the .NET thread pool to handle network requests and other asynchronous I/O operations
-
Using F# pattern matching to process message queues
-
Using low-level .NET shared-memory primitives to implement new concurrency techniques and control access to mutable data structures
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Rights and permissions
Copyright information
© 2007 Don Syme, Adam Granicz, and Antonio Cisternino
About this chapter
Cite this chapter
Syme, D., Granicz, A., Cisternino, A. (2007). Reactive, Asynchronous, and Concurrent Programming. In: Expert F#. Apress. https://doi.org/10.1007/978-1-4302-0285-1_13
Download citation
DOI: https://doi.org/10.1007/978-1-4302-0285-1_13
Publisher Name: Apress
Print ISBN: 978-1-59059-850-4
Online ISBN: 978-1-4302-0285-1
eBook Packages: Professional and Applied ComputingApress Access BooksProfessional and Applied Computing (R0)