Author of Core Java, Scala for the Impatient, and many other books.After growing up in the German countryside, I studied in the United States (M.S. in computer science from Syracuse University, and a Ph.D. in mathematics from the University of Michigan in Ann Arbor). For four years, I was VP and CTO of an Internet startup that went from 3 people in a tiny office to a public company. I taught computer science at San Jose State University and held visiting appointments at universities in Germany, Switzerland, Vietnam, and Macau. In my copious spare time I write books and articles on programming languages and computer science education.
Looming Changes in Java Concurrency
Project Loom, expected to be delivered in final form in Java 21, brings "virtual" threads to the Java platform. After an introduction to the concepts of virtual threads, structured concurrency, and extent locals, the talk focuses on the implications for programmers. Why should you care about Loom if you will never run a million concurrent tasks? How do you choose between virtual and platform threads? When blocking is cheap, is there still a benefit to reactive programming? Which parts of "Concurrency in Practice" are now outdated, and what is still relevant? What concurrent synchronization mechanisms and design patterns should you favor? How do you debug and profile virtual threads? What pitfalls do you need to recognize when transforming your current code to take advantage of virtual threads? How do you structure new code? This pragmatic presentation provides a perspective beyond the "what" of Project Loom and into the "why" and "how".