首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JVM虚拟线程的可调整大小堆栈是什么?

JVM虚拟线程的可调整大小堆栈是什么?
EN

Stack Overflow用户
提问于 2022-02-02 12:14:24
回答 1查看 88关注 0票数 1

开放的jdk项目"Loom“支持虚拟线程,它允许经典的IO阻塞API享受异步、反应堆、协同开发风格的巨大好处。

我在youtube上搜索了一下,我了解到虚拟线程最重要的魔力是这段视频中的“可调整大小的堆栈”。

这就是为什么可以创建和阻止数以百万计的虚拟线程。

我对如何实现“可调整大小的堆栈”非常感兴趣。

  1. 它是一个连续的内存段还是一个不连续的链表结构?
  2. 它的性能够高吗?
  3. 函数既可以由平台线程调用,也可以由虚拟线程调用。是否会因需要确定当前执行的情况而导致性能损失?
EN

回答 1

Stack Overflow用户

发布于 2022-05-10 19:07:08

虚拟线程必须基于实际线程运行。

必须更改所有阻塞API的实现,这称为虚拟线程友好。

当虚拟方法调用阻塞API时,虚拟线程将从实际线程中卸载,以便真正的线程能够继续运行其他没有阻塞的虚拟线程。

当虚拟线程被卸载时,当前堆栈的信息将被复制到堆中,它们被称为堆栈块对象。

当阻塞API完成后,虚拟线程将再次装入真正的线程,信息将从堆复制到堆栈,以便真正的线程能够继续运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70955447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档