Skip to main content

An Empirical Study of Messaging Passing Concurrency in Go Projects

Dilley, Nicolas, Lange, Julien (2019) An Empirical Study of Messaging Passing Concurrency in Go Projects. In: Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering. . IEEE ISBN 978-1-72810-591-8. (doi:10.1109/SANER.2019.8668036)

PDF - Author's Accepted Manuscript
Download (313kB) Preview
Official URL


Go is a popular programming language renowned for its good support for system programming and its channel- based message passing concurrency mechanism. These strengths have made it the language of choice of many platform software such as Docker and Kubernetes. In this paper, we analyse 865 Go projects from GitHub in order to understand how message passing concurrency is used in publicly available code. Our results include the following findings: (1) message passing primitives are used frequently and intensively, (2) concurrency-related features are generally clustered in specific parts of a Go project, (3) most projects use synchronous communication channels over asynchronous ones, and (4) most Go projects use simple concurrent thread topologies, which are however currently unsupported by existing static verification frameworks.

Item Type: Conference or workshop item (Proceeding)
DOI/Identification number: 10.1109/SANER.2019.8668036
Uncontrolled keywords: Golang, message passing, static analysis, empirical study
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Sciences > School of Computing
Faculties > Sciences > School of Computing > Programming Languages and Systems Group
Depositing User: Julien Lange
Date Deposited: 03 Jan 2019 09:18 UTC
Last Modified: 30 May 2019 08:42 UTC
Resource URI: (The current URI for this page, for reference purposes)
Lange, Julien:
  • Depositors only (login required):


Downloads per month over past year