Skip to main content
  • Textbook
  • © 2021

Nonsequential and Distributed Programming with Go

Synchronization of Concurrent Processes: Communication - Cooperation - Competition

Authors:

  • Compact introduction to concurrent programming with Google Go
  • Systematic overview of synchronization and communication of concurrent processes
  • All Go source texts are available for download

Buy it now

Buying options

eBook USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

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

Table of contents (18 chapters)

  1. Front Matter

    Pages i-xxiv
  2. Introduction

    • Christian Maurer
    Pages 1-32
  3. Packages, Interfaces, and Abstract Data Types

    • Christian Maurer
    Pages 33-47
  4. Locks

    • Christian Maurer
    Pages 49-96
  5. Semaphores

    • Christian Maurer
    Pages 97-148
  6. The Baton Algorithm

    • Christian Maurer
    Pages 149-157
  7. Universal Critical Sections

    • Christian Maurer
    Pages 159-174
  8. Fairness

    • Christian Maurer
    Pages 175-177
  9. Deadlocks

    • Christian Maurer
    Pages 179-191
  10. Monitors

    • Christian Maurer
    Pages 193-226
  11. Universal Monitors

    • Christian Maurer
    Pages 227-243
  12. Message Passing

    • Christian Maurer
    Pages 245-274
  13. Comparison of the Previous Language Constructs

    • Christian Maurer
    Pages 275-276
  14. Netwide Message Passing

    • Christian Maurer
    Pages 277-292
  15. Universal Far Monitors

    • Christian Maurer
    Pages 293-310
  16. Networks as Graphs

    • Christian Maurer
    Pages 311-334
  17. Heartbeat Algorithms

    • Christian Maurer
    Pages 335-343
  18. Traversing Algorithms

    • Christian Maurer
    Pages 345-380
  19. Leader Election Algorithms

    • Christian Maurer
    Pages 381-395
  20. Back Matter

    Pages 397-404

About this book

After a short chapter on basic aspects of software engineering and its realization in Go, this book introduces to nonsequential and distributed programming with Go. It systematically presents basic concepts for the synchronization and communication of concurrent processes. These include locks, semaphores, fairness and deadlocks, monitors, local and network-wide message passing, networks as graphs, network exploration, distributed depth and breadth first search, and the selection of a leader in networks. In order to make readers familiar with the concepts, the author always takes up the same classic examples. This makes learning easier, because the concepts presented can be compared more easily with the language resources.

The algorithms are formulated in the Go programming language, which can be used to express numerous synchronization concepts. Due to its simple syntax, Go also offers the advantage that readers without prior knowledge can follow the basic concepts. The chapters on locks, semaphores, monitors and network-wide message passing also present some basic approaches to programming in C and Java. All source texts are available online.

In the 4th edition of the textbook, which is aimed at students of computer science, some errors have been corrected, smaller extensions have been included and adjustments due to a change to Go have been made.

Authors and Affiliations

  • Institut für Informatik, Freie Universität Berlin, Berlin, Germany

    Christian Maurer

About the author

Dipl. Math. Dr.rer.nat. Christian Maurer studied in Berlin and earned his doctorate in mathematics at the University of Bremen. He worked for a long time as a research assistant and assistant professor of mathematics at Freie Universität Berlin, then for a short time as head of computer science at a Berlin high school and finally, until his retirement, as head of teacher training at the Department of Mathematics and Computer Science at Freie Universität Berlin. During this time - and even after his retirement - he was a lecturer for computer science.


Bibliographic Information

Buy it now

Buying options

eBook USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access