Java教程说创建一个Thread很昂贵.但为什么它很贵?创建Java Thread会使其创建成本高昂时究竟发生了什么?我认为这句话是正确的,但我只是对JVM中线程创建的机制感兴趣.
线程生命周期开销.线程创建和拆解不是免费的.实际开销因平台而异,但线程创建需要时间,将延迟引入请求处理,并且需要JVM和OS的一些处理活动.如果请求频繁且轻量级,就像在大多数服务器应用程序中一样,为每个请求创建新线程会占用大量计算资源.
来自Java Concurrency in Practice
作者:Brian Goetz,Tim Peierls,Joshua Bloch,Joseph Bowbeer,David Holmes,Doug Lea
打印ISBN-10:0-321-34960-1
Java虚拟机可以维护的最大线程数是多少?
我没有在原始问题中解释这一点,但我试图对JVM进行基准测试,并希望尝试查看它可以同时维护多少个线程.
在循环中创建线程直到抛出异常是一个选项,但是,我想知道是否有更好的方法来执行此操作.
我有一个4核CPU,我创建了一个CPU资源限制为100m的Kubernetes Pod,这意味着它将占用1/10的核心功率。
我想知道在这种情况下100m甚至不是一个完整的内核,如果我的应用程序是多线程应用程序,我的应用程序的线程会并行运行吗?还是所有线程仅在内核(100毫安内核)的一部分中运行?
谁能进一步解释其背后的机制?