gpt4 book ai didi

java - Java应用程序中CPU核心数和线程数之间的关系是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:36 24 4
gpt4 key购买 nike

我是 java 多线程 编程的新手。我想到的问题是,根据我的 CPU 核心数,我可以运行多少个线程。如果我运行的线程多于 CPU 核心数,机器运行应用程序是否会产生开销。例如,当我们有一台服务器机器有一个运行 2 个线程(主线程 + 开发人员线程)的服务器软件时,当更多同时客户端与服务器建立套接字连接时,服务器是否会产生开销?

谢谢。

最佳答案

系统可以同时执行的线程数量(当然)与系统中的内核数量相同。

系统上可以存在的线程数受可用内存的限制(每个线程都需要一个堆栈和操作系统用来管理线程的结构),并且操作系统允许的线程数可能存在限制(这取决于操作系统架构,某些操作系统可能使用固定大小的表,一旦表满就无法创建更多线程)。

通常,当今的计算机可以处理成百上千个线程。

系统中使用的线程多于内核的原因是:大多数线程将不可避免地花费大量时间等待某些事件(例如:字处理器等待用户在键盘上键入).操作系统管理以这种方式等待的线程不会消耗 CPU 时间。

关于java - Java应用程序中CPU核心数和线程数之间的关系是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com