This page tracks which blocking operations release the underlying thread to do other work. It's for reference purposes. Developers using the Java APIs should not be concerned with any of the details here, it's transparent and will be unspecified as to which APIs are scheduling points.
The following blocking operations are "virtual thread friendly". When not pinned, they will release the underlying carrier thread to do other work when the operation blocks.
...
connect, disconnect, send, and write do not block
...
The following blocking operations use the ForkJoinPool.ManagedBlocker mechanism when invoked from a virtual thread. Parallelism is temporarily expanded until the blocking operation completes.
...
The following are some of the blocking operations that use the ForkJoinPool.ManagedBocker mechanism by way of the operations in the previous table.
...