Talk

Beyond Synchronized: The Thread-Safe Frontier

In Russian

Writing concurrent code is difficult, but verifying it is often a journey into the unknown. We begin by discussing why standard tests fail to catch race conditions and why "it works on my machine" is a dangerous illusion. Testing multithreaded Java introduces unique challenges, from non-deterministic execution to subtle memory visibility issues. To navigate this, we must move Beyond Synchronized and explore the theoretical frameworks that make concurrent verification possible.

We will compare different philosophies, ranging from hardware-level stress testing to formal model checking. The session provides a deep dive into three essential tools: JCStressLincheck, and Fray. You will learn exactly where each instrument shines and how to choose the right one for your specific concurrency model.

By the end, you’ll have a clear roadmap to claim your place on the Thread-Safe Frontier and turn unpredictable "Heisenbugs" into a systematic part of your test suite.

Speakers

Talks