HNHacker News
TopNewBestAskShowJobs

throwawayisize

2 karma · joined October 25, 2022

submissionscomments
throwawayisize··on Show HN: Open-source non-blocking NIO Java HTTP Server
FTA, it's pretty clear.

  Typically, a virtual thread will unmount when it blocks on I/O or some other blocking operation in the JDK, 
  such as BlockingQueue.take(). When the blocking operation is ready to complete (e.g., bytes have been 
  received on a socket), it submits the virtual thread back to the scheduler, which will mount the virtual 
  thread on a carrier to resume execution.

  The mounting and unmounting of virtual threads happens frequently and transparently, and without blocking any 
  OS threads. For example, the server application shown earlier included the following line of code, which 
  contains calls to blocking operations: response.send(future1.get() + future2.get());

  These operations will cause the virtual thread to mount and unmount multiple times, typically once for each call to get() and possibly 
  multiple times in the course of performing I/O in send(...).
> Non-blocking IO is about interrupts at the hardware level

This isn't relevant. We only care from the perspective of userspace.