1.说明

CPU(Central Processing Unit)是中央处理单元,

本文介绍物理CPU,物理CPU内核,逻辑CPU,

以及他们三者之间的关系,

一个物理CPU可以有1个或者多个物理内核,

一个物理内核可以作为1个或者2个逻辑CPU。

2.物理CPU

物理CPU就是计算机上实际安装的CPU,

物理CPU数就是主板上实际插入的CPU数量。

在Linux上查看/proc/cpuinfo,

其中的physical id就是每个物理CPU的id,

有几个不同的physical id就有几个物理CPU。

3.物理CPU内核

每颗物理CPU可以有1个或者多个物理内核,

通常每颗物理CPU的内核数都是固定的,

单核CPU就是有1个物理内核,

双核CPU就是有2个物理内核。

在Linux上查看/proc/cpuinfo,

其中的core id就是每颗物理CPU的物理内核id,

有几个不同的core id就有几个物理内核。

总的CPU物理内核数 = 物理CPU数 * 每颗物理CPU的内核数

4.逻辑CPU

操作系统可以使用逻辑CPU来模拟真实CPU。

在没有多核处理器的时候,

一个物理CPU只能有一个物理内核,

而现在有了多核技术,

一个物理CPU可以有多个物理内核,

可以把一个CPU当作多个CPU使用,

也就是所谓的逻辑CPU。

没有开启超线程时,逻辑CPU的个数就是总的CPU物理内核数。

然而开启超线程后,逻辑CPU的个数就是总的CPU物理内核数的两倍。

在Linux上查看/proc/cpuinfo,

其中的processor就是逻辑CPU,

有几个processor就有几个逻辑CPU。

总的逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数

总的逻辑CPU数 = 总的CPU物理内核数 * 超线程数

5.几核几线程

基于上面的基本概念,

理解一下常说的几核几线程。

如果计算机有一个物理CPU,

是双核的,支持超线程。

那么这台计算机就是双核四线程。

实际上几核几线程中的线程数就是逻辑CPU数。

对于两路四核超线程计算机,

两路指计算机有2个物理CPU,

每颗CPU中有4个物理内核,

CPU支持超线程,

就有242=16个逻辑CPU,

这就是通常所谓的16核计算机。

6.两路四核超线程

实际能看到的2个物理CPU:

实现16个逻辑CPU的原理图:

物理CPU,物理CPU内核,逻辑CPU概念详解的更多相关文章

  1. linux下查看cpu物理个数、核数、逻辑cpu数

    一.首先要明确物理cpu个数.核数.逻辑cpu数的概念 1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id) 2.cpu核数:单块CP ...

  2. 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)

    不过必须XP SP3以上才行.所有API大全: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).a ...

  3. JWT基础概念详解

    JWT基础概念详解 JWT介绍 之前我们文章讲过分布式session如何存储,其中就讲到过Token.JWT.首先,我们来回顾一下使用Token进行身份认证. 客户端发送登录请求到服务器 服务器在用户 ...

  4. linux查询操作系统信息,CPU物理个数,CPU核心数,逻辑CPU数,内存信息查询,硬盘信息查询

    目录 一.前言 二.关于服务器基本配置 2.1 操作系统基本配置查询 2.2 CPU基本配置查询 2.3 内存基本配置查询 2.4 硬盘基本配置查询 一.前言 ​ 当我们接手了一台或者几台服务器的时候 ...

  5. Linux内核数据结构之kfifo详解

    本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件: include/linux/kfifo.h kfifo是内核里面的一个First ...

  6. Android屏幕密度(Density)和分辨率概念详解

    移动设备有大有小,那么如何适应不同屏幕呢,这给我们编程人员造成了很多困惑.我也是突然想到这些问题,然后去网上搜搜相关东西,整理如下.   首先,对下面这些长度单位必须了解. Android中的长度单位 ...

  7. Storm 学习之路(二)—— Storm核心概念详解

    一.Storm核心概念 1.1 Topologies(拓扑) 一个完整的Storm流处理程序被称为Storm topology(拓扑).它是一个是由Spouts 和Bolts通过Stream连接起来的 ...

  8. Storm 系列(二)—— Storm 核心概念详解

    一.Storm核心概念 1.1 Topologies(拓扑) 一个完整的 Storm 流处理程序被称为 Storm topology(拓扑).它是一个是由 Spouts 和 Bolts 通过 Stre ...

  9. 1-Hyperledger Fabric概念详解

    目录 一.Hyperledger Fabric概述 二.基本术语 1.共享账本ledger 2.通道Channel 3.组织Org 4.智能合约Chaincode 5.背书Endorse 6.各种节点 ...

随机推荐

  1. SqlSession与SqlSessionFactory到底是什么关系?

    1. SqlSession和SqlSessionFactory的接口定义 SqlSession: public interface SqlSession extends Closeable {     ...

  2. binlog2sql 解析日志失败 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte

    python35 ./binlog2sql.py -h... -P... -u... -p... -B --start-file="mysql-bin.091940" --star ...

  3. 商城项目的购物车模块的实现------通过session实现

    1.新建购物车的实体类Cart public class Cart implements java.io.Serializable{ private Shangpin shangpin;//存放商品实 ...

  4. DuiLib逆向分析の按钮事件定位

    目录 DuiLib逆向分析の按钮事件定位 0x00 前言 DuiLib介绍 DuiLib安装 DuiLib Hello,World! Duilib逆向分析之定位按钮事件 碎碎念 第一步:获取xml布局 ...

  5. react的diff算法与antd中switch组件不更新问题

    问题描述: 现在有个需求,现有一个列表table,里面的数据有启用的也有关闭的,switch组件会根据数据状态展示,同时进行排序,启用数据在前面,未启用的在后面.如图 然后现在需要操作,假如我将第四条 ...

  6. Python基础入门(6)- 面向对象编程

    1.初识面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本篇随笔将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象 ...

  7. 小迪安全 Web安全 基础入门 - 第九天 信息打点 - CDN绕过篇&漏洞回链&接口探针&全网扫描&反向邮件

    一. CDN知识-工作原理及阻碍 (一)工作原理 1.概述:CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地 ...

  8. 20款GitHub上优秀的Go开源项目

    docker 无人不知的虚拟华平台,开源的应用容器引擎,借助该引擎,开发者可以打包他们的应用,移植到任何平台上. https://github.com/docker/docker 38154 star ...

  9. 优雅的按键模块-----Multi-button

    优雅的按键模块-----Multi-button ​ 在我们日常开发和使用的过程中常常使用了一些按键,利用按键实现不同的功能,比如长按,短按,双击等等.但是每次都是采用标志等等来实现信息的读取,是否有 ...

  10. JAVA获取某个月(当月)第一天的开始时刻和某个月(当月)最后一天的最后时刻

    package com.date; import java.text.SimpleDateFormat; import java.util.Calendar; public class Test { ...