Writing multithreaded programs is hard, however, testing them is not easier at all. Thinking about all dangerous execution scenarios and writing tests for them is a difficult task, therefore it is often limited to a simple set of stress tests that are not always enough to detect an error. In order to solve this problem, the Lin-Check tool has been developed, which automatically checks a multithreaded Java code for linearizability. The first part of the talk is dedicated to various strategies and techniques for checking for linearizability. In the second part, we discuss the provided API and its ability to test your data structures.
Nikita Koval, Devexperts
Nikita works as a research engineer in research group dxLab at Devexperts. He is a student at ITMO university and also teaches a course on concurrent programming at the same university together with Roman Elizarov.