<div dir="ltr">Hi,<div><br></div><div>My colleague David Gay has the following use-case for Custom Schedulers (<a href="https://github.com/openjdk/loom/blob/fibers/loom-docs/CustomSchedulers.md">https://github.com/openjdk/loom/blob/fibers/loom-docs/CustomSchedulers.md</a>):</div><div><br></div><div>A multi-tenant server needs to provide isolation, in particular CPU isolation, between the workloads of different customers. A good way to achieve this when using virtual threads is to use some form of fair-share scheduler to allocate carrier threads to virtual threads. Custom schedulers provide a straightforward, efficient, and safe way to support this use case.<br><br>Absent custom schedulers, it is possible to work around this by surrounding all blocking points in a virtual thread by blocking interactions with the fair scheduler. This however poses significant reliability risks, as identifying these points is not straightforward and missing any of them affects the fairness of the scheduling and risks starvation or deadlock.</div></div>