@gron

An Empirical Study of Messaging Passing Concurrency in Go Projects

, and . 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), page 377--387. (February 2019)
DOI: 10.1109/SANER.2019.8668036

Abstract

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.

Description

An Empirical Study of Messaging Passing Concurrency in Go Projects - IEEE Conference Publication

Links and resources

Tags

community

  • @gron
  • @dblp
@gron's tags highlighted