一句话:提出通过消息重排序来检测 Go 程序中 channel 相关并发缺陷的方法。
Go 语言通过 goroutine 和 channel 支持并发编程,鼓励显式消息传递以减少并发错误。然而,近期研究发现 channel 相关并发缺陷在 Go 程序中仍很常见,严重影响程序可靠性。针对这一问题,本文提出通过消息重排序来检测 Go 并发缺陷。该方法的核心思想是系统性地改变 goroutine 间消息传递的顺序,以暴露因消息交错而触发的错误。摘要中未给出具体评估细节,但该工作针对真实 Go 程序中的 channel 并发缺陷进行检测。
Go is a young programming language invented to build safe and efficient concurrent programs. It provides goroutines as lightweight threads and channels for inter-goroutine communication. Programmers are encouraged to explicitly pass messages through channels to connect goroutines, with the purpose of reducing the chance of making programming mistakes and introducing concurrency bugs. Go is one of the most beloved programming languages and has already been used to build many critical infrastructure software systems in the data-center environment. However, a recent study shows that channel-related concurrency bugs are still common in Go programs, severely hurting the reliability of the programs.