The platform will undergo maintenance on Sep 14 at about 7:45 AM EST and will be unavailable for approximately 2 hours.
Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering 2015
DOI: 10.1145/2786805.2786815
|View full text |Cite
|
Sign up to set email alerts
|

What change history tells us about thread synchronization

Abstract: Multi-threaded programs are pervasive, yet difficult to write. Missing proper synchronization leads to correctness bugs and over synchronization leads to performance problems. To improve the correctness and efficiency of multi-threaded software, we need a better understanding of synchronization challenges faced by real-world developers. This paper studies the code repositories of open-source multi-threaded software projects to obtain a broad and indepth view of how developers handle synchronizations. We first … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
10
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 31 publications
(10 citation statements)
references
References 81 publications
0
10
0
Order By: Relevance
“…Performance issues of multithreaded programs, despite being the primary cause of more than 22% synchronization fixes of server programs [23], get less attention than they deserve. There are many prior works [8,19,21,23,28,41,43] in this domain, but none of them systematically investigates performance issues related to different types of synchronization primitives. Most existing works cannot identify root causes, and provide helpful fixing strategies.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Performance issues of multithreaded programs, despite being the primary cause of more than 22% synchronization fixes of server programs [23], get less attention than they deserve. There are many prior works [8,19,21,23,28,41,43] in this domain, but none of them systematically investigates performance issues related to different types of synchronization primitives. Most existing works cannot identify root causes, and provide helpful fixing strategies.…”
Section: Introductionmentioning
confidence: 99%
“…Prior work [8,19,21,23,28,41,43] focuses excessively on locks that are both acquired frequently and highly contended. Our first observation is that performance problems can also occur with locks that are not excessively acquired or highly contended.…”
Section: Introductionmentioning
confidence: 99%
“…Several approaches analyze concurrency-related performance issues [12,22,45,62,66,66]. For example, SpeedGun [45] generates multi-threaded performance test cases to expose performance differences between two program versions.…”
Section: Related Workmentioning
confidence: 99%
“…Since these two goals, correctness and performance, are often contradictory, developers struggle to achieve both. A recent study reports that more than 25% of all critical sections (CSs) are changed at some point by the developers, both to fix correctness bugs and to enhance performance [22]. Another study shows that unnecessary synchronization is a common root cause for real-world performance problems [26].…”
Section: Introductionmentioning
confidence: 99%
“…As illustrated by the example from Figures 1 and 2, programming with implicit monitors is considerably easier because the programmer does not need to reason about when and which threads should be notified. In fact, it is well-known that many concurrency bugs are caused by erroneous signal placement in explicit-signal implementations [23,32]. However, despite their easier programmability, implicit-signal monitors are not widely-used due to performance considerations.…”
Section: Introductionmentioning
confidence: 99%