15

Java虚拟线程(Loom项目)

 3 years ago
source link: https://zhuanlan.zhihu.com/p/141418249
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Java虚拟线程(Loom项目)

Loom项目旨在尽可能地降低最大可能利用硬件高吞吐量并发程序的编写,维护和观测等工作。

Loom项目开始于2017年末,本文将解释项目的动机和采用的方法,并总结了目前为止我们的工作。和所有openjdk的项目一样,它将通过在每个GA JDK中通过不同的组件阶段性地交付,大概率会先使用预览(Preview)机制。

你可以在Loom wiki上面找到更多文档,并在Loom的早期预览版的发布中试用下面介绍的大部分功能。

Thread.startVirtualThread(() -> {
    System.out.println("Hello, Loom!");
});

重要要点:

  • 一个虚拟线程是一个线程-无论是代码,运行时,还是在调试器抑或探测器(profiler)中。
  • 一个虚拟线程不是系统线程的封装,而是一个Java实体。
  • 创建一个虚拟线程的开销很低- 可以有百万数计,所以不要考虑虚拟线程池(pool)。
  • 阻塞一个虚拟线程的开销很低,所以使用同步代码的时候不要犹豫。
  • Java语法上面没有改动。
  • 插拔式的调度器提供了异步编程的灵活性。

目录:
......(翻譯太難了)

原文


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK