Skip to main content

Reactive, Asynchronous, and Concurrent Programming

  • Chapter
Book cover Expert F#

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 84.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Authors

Rights and permissions

Reprints 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

Publish with us

Policies and ethics