$30 off During Our Annual Pro Sale. View Details »

Virtual Thread - 導入の背景と、効果的な使い方 -

Virtual Thread - 導入の背景と、効果的な使い方 -

2023.01.21 ブリ会議 発表資料

Yuichi.Sakuraba

January 21, 2023
Tweet

More Decks by Yuichi.Sakuraba

Other Decks in Technology

Transcript

  1. - -

    View Slide







  2. View Slide





  3. View Slide





  4. View Slide

  5. View Slide






  6. View Slide






  7. View Slide

  8. public class ThreadPoolExecutor
    extends AbstractExecutorService {
    ...
    private final class Worker
    extends AbstractQueuedSynchronizer
    implements Runnable {
    Worker(Runnable firstTask) {
    setState(-1);
    this.firstTask = firstTask;
    this.thread
    = getThreadFactory().newThread(this);
    }
    ...

    View Slide




  9. View Slide








  10. View Slide




  11. View Slide








  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. int blockingRead(byte[] b, int off, int len, long nanos)
    throws IOException {
    ...
    // read, no timeout
    configureSocketNonBlockingIfVirtualThread();
    n = tryRead(b, off, len);
    while (IOStatus.okayToRetry(n) && isOpen()) {
    park(Net.POLLIN);
    n = tryRead(b, off, len);
    }
    ...

    View Slide









  19. View Slide






  20. View Slide





  21. View Slide





  22. View Slide








  23. View Slide








  24. View Slide

  25. - -

    View Slide