JDK 21虚拟线程能否并发执行任务?同一平台线程内的虚拟线程可同时执行吗?
同一平台线程内的两个虚拟线程能否同时执行任务?
答案:不能
虚拟线程是java.lang.Thread的实例,由Java运行时负责调度,而非直接绑定特定OS平台线程。关于同一平台线程上的虚拟线程执行逻辑:
- 同一平台线程在任意时刻只能执行一个虚拟线程的任务,虚拟线程会独占该平台线程的CPU执行资源。
- 只有当当前运行的虚拟线程遇到阻塞I/O操作(或主动让出CPU)时,Java运行时才会将其暂停,并让该平台线程切换执行其他等待的虚拟线程。这种切换是上下文切换,属于串行调度,而非并行执行。
- 平台线程作为虚拟线程的执行载体,同一时间只能承载一个虚拟线程的任务,不存在同一平台线程内两个虚拟线程同时运行的情况。
内容的提问来源于stack exchange,提问作者powercheng
相关产品推荐
相关产品推荐

