当前位置: 首页 > news >正文

Linux shell编程学习笔记51: cat /proc/cpuinfo:查看CPU详细信息

0 前言

2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。对于中央处理器CPU比如,我们可以使用cat /proc/cpuinfo命令来收集中央处理器CPU的信息。

1. /proc/cpuinfo 保存了系统的cpu信息

在linux系统中,/proc目录下的文件保存了系统的软硬件信息。

[purpleendurer @ bash /] ls -l /proc
total 0
dr-xr-xr-x  9 csdn csdn    0 5月  28 22:19 1
dr-xr-xr-x  9 csdn csdn    0 5月  28 22:22 102
dr-xr-xr-x  9 csdn csdn    0 5月  28 22:22 127
dr-xr-xr-x  9 csdn csdn    0 5月  28 22:23 155
dr-xr-xr-x  9 csdn csdn    0 5月  28 22:24 170
dr-xr-xr-x  9 csdn csdn    0 5月  28 22:19 47
dr-xr-xr-x  9 csdn csdn    0 5月  28 22:19 72
drwxrwxrwt  2 root root   40 5月  28 22:19 acpi
-rw-------  1 root root    0 5月  28 22:23 async_load_calc
-r--r--r--  1 root root    0 5月  28 22:23 buddyinfo
dr-xr-xr-x  4 root root    0 5月  28 22:19 bus
-r--r--r--  1 root root    0 5月  28 22:23 cgroups
-r--r--r--  1 root root    0 5月  28 22:23 cmdline
-r--r--r--  1 root root    0 5月  28 22:23 consoles
-r--r--r--  1 root root    0 5月  28 22:23 cpuinfo
dr-xr-xr-x  3 root root    0 5月  28 22:23 cpusli
-r--r--r--  1 root root    0 5月  28 22:23 crypto
-r--r--r--  1 root root    0 5月  28 22:23 devices
-r--r--r--  1 root root    0 5月  28 22:23 diskstats
-r--r--r--  1 root root    0 5月  28 22:23 dma
dr-xr-xr-x  4 root root    0 5月  28 22:23 driver
dr-xr-xr-x  3 root root    0 5月  28 22:23 dynamic_debug
--w-------  1 root root    0 5月  28 22:23 dyn_isolcpus
-r--r--r--  1 root root    0 5月  28 22:23 execdomains
-rw-r--r--  1 root root    0 5月  28 22:23 fault_events
-r--r--r--  1 root root    0 5月  28 22:23 fb
-r--r--r--  1 root root    0 5月  28 22:19 filesystems
dr-xr-xr-x  9 root root    0 5月  28 22:19 fs
-r--r--r--  1 root root    0 5月  28 22:23 interrupts
-r--r--r--  1 root root    0 5月  28 22:23 iomem
-r--r--r--  1 root root    0 5月  28 22:23 ioports
dr-xr-xr-x 28 root root    0 5月  28 22:19 irq
-r--r--r--  1 root root    0 5月  28 22:23 kallsyms
crw-rw-rw-  1 root root 1, 3 5月  28 22:19 kcore
crw-rw-rw-  1 root root 1, 3 5月  28 22:19 keys
-r--r--r--  1 root root    0 5月  28 22:23 key-users
-r--------  1 root root    0 5月  28 22:23 kmsg
-r--------  1 root root    0 5月  28 22:23 kpagecgroup
-r--------  1 root root    0 5月  28 22:23 kpagecount
-r--------  1 root root    0 5月  28 22:23 kpageflags
-r--r--r--  1 root root    0 5月  28 22:23 loadavg
-r--r--r--  1 root root    0 5月  28 22:23 locks
-r--r--r--  1 root root    0 5月  28 22:23 mdstat
-r--r--r--  1 root root    0 5月  28 22:19 meminfo
dr-xr-xr-x  3 root root    0 5月  28 22:23 memsli
-r--r--r--  1 root root    0 5月  28 22:23 misc
-r--r--r--  1 root root    0 5月  28 22:23 modules
lrwxrwxrwx  1 root root   11 5月  28 22:23 mounts -> self/mounts
-rw-r--r--  1 root root    0 5月  28 22:23 mtrr
lrwxrwxrwx  1 root root    8 5月  28 22:23 net -> self/net
-r--------  1 root root    0 5月  28 22:23 pagetypeinfo
-r--r--r--  1 root root    0 5月  28 22:23 partitions
crw-rw-rw-  1 root root 1, 3 5月  28 22:19 sched_debug
-r--r--r--  1 root root    0 5月  28 22:23 schedstat
drwxrwxrwt  2 root root   40 5月  28 22:19 scsi
lrwxrwxrwx  1 root root    0 5月  28 22:19 self -> 170
-r--------  1 root root    0 5月  28 22:23 slabinfo
-r--r--r--  1 root root    0 5月  28 22:23 softirqs
-r--r--r--  1 root root    0 5月  28 22:23 stat
-r--r--r--  1 root root    0 5月  28 22:23 swaps
dr-xr-xr-x  1 root root    0 5月  28 22:19 sys
--w-------  1 root root    0 5月  28 22:19 sysrq-trigger
dr-xr-xr-x  5 root root    0 5月  28 22:23 sysvipc
lrwxrwxrwx  1 root root    0 5月  28 22:19 thread-self -> 170/task/170
crw-rw-rw-  1 root root 1, 3 5月  28 22:19 timer_list
dr-xr-xr-x  6 root root    0 5月  28 22:23 tty
dr-xr-xr-x  4 root root    0 5月  28 22:23 unevictable
-r--r--r--  1 root root    0 5月  28 22:23 uptime
-r--r--r--  1 root root    0 5月  28 22:23 version
-r--------  1 root root    0 5月  28 22:23 vmallocinfo
-r--r--r--  1 root root    0 5月  28 22:23 vmstat
-r--r--r--  1 root root    0 5月  28 22:23 zerobuddyinfo
-r--r--r--  1 root root    0 5月  28 22:23 zoneinfo
[purpleendurer @ bash /] 

如果想了解和获取系统中CPU的提供商和相关配置信息,则可以查看/proc/cpuinfo。

2.cat /proc/cpuinfo:查看CPU详细信息

2.1 实例

2.1.1 实例1

[purpleendurer @ bash /] cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Platinum
stepping        : 4
microcode       : 0x1
cpu MHz         : 2499.442
cache size      : 33792 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed
bogomips        : 4998.88
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Platinum
stepping        : 4
microcode       : 0x1
cpu MHz         : 2499.442
cache size      : 33792 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed
bogomips        : 4998.88
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:[purpleendurer @ bash /] 

2.1.2 实例2

[purpleendurer @ bash ~] cat /proc/cpuinfo
processor	: 0
model name	: Phytium,FT-2000/4
bogomips	: 3456.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
flags		: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x70
CPU architecture: 8
CPU variant	: 0x1
CPU part	: 0x663
CPU revision	: 3processor	: 1
model name	: Phytium,FT-2000/4
bogomips	: 3456.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
flags		: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x70
CPU architecture: 8
CPU variant	: 0x1
CPU part	: 0x663
CPU revision	: 3processor	: 2
model name	: Phytium,FT-2000/4
bogomips	: 3456.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
flags		: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x70
CPU architecture: 8
CPU variant	: 0x1
CPU part	: 0x663
CPU revision	: 3processor	: 3
model name	: Phytium,FT-2000/4
bogomips	: 3456.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32
flags		: fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer	: 0x70
CPU architecture: 8
CPU variant	: 0x1
CPU part	: 0x663
CPU revision	: 3

 

 2.2 返回信息说明

不同的系统返回的信息内容也不尽相同,以下是一些常见的信息项。

输出项含义备注
address sizes可访问地址空间位数
apicid用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
bogomips在系统内核启动时粗略测算的CPU速度Million Instructions Per Second
cache_alignment缓存地址对齐单位
cache sizeCPU二级缓存大小
clflush size每次刷新缓存的大小单位
core id当前物理核在其所处CPU中的编号这个编号不一定连续
cpu cores该逻辑核所处CPU的物理核数比如此处cpu cores 是4个,那么对应core id 可能是 1、3、4、5。
cpu familyCPU产品系列代号
cpuid level执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
cpu MHzCPU的实际使用主频
flags当前CPU支持的功能
fpu是否具有浮点运算单元(Floating Point Unit)
fpu_exception是否支持浮点计算异常
initial apicid
microcode

model

CPU属于其系列中的哪一代的代号
model nameCPU全名,包括处理器品牌。一旦您知道您拥有的 CPU 的确切类型,您就可以查看有关处理器规格的产品文档。CPU属于的名字及其编号、标称主频
processor

系统中逻辑处理核心的编号,从0开始排序。

对于单核处理器,则认为是其CPU编号

对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核

physical id单个CPU的标号
power management 对能源管理的支持
siblings单个CPU逻辑物理核数
steppingCPU属于制作更新版本
vendor_idCPU制造商
wp表明当前CPU是否在内核态支持对用户空间的写保护Write Protection

2.3 关于物理CPU、核数、逻辑cpu数的概念

2.3.1 物理CPU数(physical id)

主板上实际插入的cpu数量,可以数不重复的 physical id 有几个

2.3.2 CPU核心数(cpu cores)

单块CPU上面能处理数据的芯片组的数量,如双核、四核等 

2.3.3逻辑CPU数

一般情况下:

在不支持超线程技术或没有开启次技术的情况下:

逻辑CPU=物理CPU个数×每颗核数

在服务器的CPU支持超线程技术的情况下:

逻辑CPU=物理CPU个数×每颗核数 *2  

简单来说,在这种情况下,处理器中的1 颗内核会像2 颗内核那样在操作系统中发挥作用。

这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能。

3 应用实例

3.1 grep -m 1 'model name' /proc/cpuinfo :显示CPU名称

[purpleendurer @ bash ~] grep -m 1 'model name' /proc/cpuinfo 
model name      : Intel(R) Xeon(R) Platinum
[purpleendurer @ bash ~] 

3.2 grep -c 'model name' /proc/cpuinfo:显示CPU数量

[purpleendurer @ bash ~] grep -c 'model name' /proc/cpuinfo
2
[purpleendurer @ bash ~] 

3.3 grep -c "cpu cores" /proc/cpuinfo : 获取CPU核数

[purpleendurer @ bash ~] grep -c "cpu cores" /proc/cpuinfo
2
[purpleendurer @ bash ~] 

3.4 grep -c "processor" /proc/cpuinfo:获取系统中的逻辑CPU数量

[purpleendurer @ bash ~] grep -c "processor" /proc/cpuinfo 
2
[purpleendurer @ bash ~] 

3.5 grep -c "siblings" /proc/cpuinfo:获取每个物理CPU中逻辑CPU的个数 

[purpleendurer @ bash ~] grep -c "siblings" /proc/cpuinfo
2
[purpleendurer @ bash ~] 

3.6 检测cpu是否使用了超级程Hyper-Threading

我们可以通过比较cpu cores数量和siblings数量来判断:

如果cpu cores数量和siblings数量一致,说明没有启用超线程,否则就是启用了超线程。

我们把cpu cores数量保存到变量a,把siblings数量保存到变量b,然后用if语句比变量a和b的值,并输出相应的结果

[purpleendurer @ bash ~] grep -c "cpu cores"  /proc/cpuinfo
2
[purpleendurer @ bash ~] grep -c "siblings"  /proc/cpuinfo
2
[purpleendurer @ bash ~] a=$(grep -c "cpu cores"  /proc/cpuinfo);b=$(grep -c "siblings"  /proc/cpuinfo);if [ $a = $b ]; then echo 'No Hyper-Threading'; else echo 'Hyper-Threading';  fi
No Hyper-Threading
[purpleendurer @ bash ~] 

 cpu cores数量和siblings数量一致,都是2,说明没有启用超线程。

4.其它相关命令

 除了利用/proc/cpuinfo文件,我们还可以使用其它命令,比如 lscpu、nproc,留待下回讲解。

相关文章:

Linux shell编程学习笔记51: cat /proc/cpuinfo:查看CPU详细信息

0 前言 2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。对于中央处理器CPU比如,我们可以使用cat /proc/cpuinfo命令来收集中央处理器CPU的信息。 1. /proc/cpuinfo 保存了系统的cpu…...

Ps:调整画笔工具

调整画笔工具 Adjustment Brush Tool可以将选区、创建蒙版和应用调整的传统工作流程合并为一个步骤,简化了对图像进行非破坏性局部调整的操作。 快捷键:B 调整画笔工具是 Photoshop 2024 年 5 月版(25.9 版)新增的工具。 ◆ ◆ …...

香橙派 AIpro上手体验并验证车道线识别算法

香橙派 AIpro上手体验并验证车道线识别算法 1.前言 最近入手了一块香橙派AIpro,体验了一下,感觉还不错,在这里分享给大家,大家可以做个参考。 2.开箱 整套产品包含一块主板、一个电源插头和一条双端Type-C的数据线,…...

为啥装了erlang,还报错erl: command not found?

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 问题背景: 在一台不通外网的服务器上装rabbitmq,然后在启动的时候,遇到了报错 “/usr/lib/…...

容器技术基础理论与常用命令:必知必会,效率翻倍!

如何利用容器技术提升你的工作效率?掌握基础理论和常用命令是必不可少的,本文将为你全面介绍容器技术,并教你必知必会的技能,让你工作、学习效率翻倍,对于网络安全工作者也是必不可少的技能! 0. 引言 学习…...

ChatGPT Edu版本来啦:支持GPT-4o、自定义GPT、数据分析等

5月31日,OpenAI在官网宣布,推出ChatGPT Edu版本。 据悉,这是一个专门为大学校园提供的ChatGTP,支持GPT-4o、网络搜索、自定义GPT、数据分析、代码生成等功能,可以极大提升学生、老师的学习质量和教学效率。 目前&…...

Spark RDD案例

Apache Spark中的RDD(Resilient Distributed Dataset)是一个不可变、分布式对象集合,它允许用户在大型集群上执行并行操作。虽然RDD在Spark的早期版本中非常核心,但随着DataFrame和Dataset的引入,RDD的使用在某些场景下…...

【线性表 - 数组和矩阵】

数组是一种连续存储线性结构,元素类型相同,大小相等,数组是多维的,通过使用整型索引值来访问他们的元素,数组尺寸不能改变。 知识点数组与矩阵相关题目 # 知识点 数组的优点: 存取速度快 数组的缺点: 事先必须知道…...

Springboot 开发 -- 跨域问题技术详解

一、跨域的概念 跨域访问问题指的是在客户端浏览器中,由于安全策略的限制,不允许从一个源(域名、协议、端口)直接访问另一个源的资源。当浏览器发起一个跨域请求时,会被浏览器拦截,并阻止数据的传输。 这…...

【Qt】之【项目】整理可参考学习的git项目链接(持续更新)

Tcp 通信相关 IM即时通讯设计 高并发聊天服务:服务器 qt客户端(附源码) - DeRoy - 博客园 未使用protobuf通讯协议格式 github:GitHub - ADeRoy/chat_room: IM即时通讯设计 高并发聊天服务:服务器 qt客户端 QT编…...

2024年5月个人工作生活总结

本文为 2024年5月工作生活总结。 研发编码 golang 多个defer函数执行顺序 golang 函数中如有多个defer,倒序执行。示例代码: func foo() {defer func() {fmt.Println("111")}()defer func() {fmt.Println("2222")}()defer func()…...

Kafka Java API

1、增加依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>1.0.0</version> </dependency>2、三个案例 案例1&#xff1a;生产数据 import org.apache.kafka.clients.p…...

pushd: not found

解决方法&#xff1a; pushd 比 cd 命令更高效的切换命令&#xff0c;非默认&#xff0c;可在脚本开头添加&#xff1a; #! /bin/bash ubuntu 编译时出现/bin/sh: 1: pushd: not found的问题-CSDN博客...

【第十三节】C++控制台版本坦克大战小游戏

目录 一、游戏简介 1.1 游戏概述 1.2 知识点应用 1.3 实现功能 1.4 开发环境 二、项目设计 2.1 类的设计 2.2 各类功能 三、程序运行截图 3.1 游戏主菜单 3.2 游戏进行中 3.3 双人作战 3.4 编辑地图 一、游戏简介 1.1 游戏概述 本项目是一款基于C语言开发的控制台…...

酷得单片机方案 2.4G儿童遥控漂移车

电子方案开发定制&#xff0c;我们是专业的 东莞酷得智能单片机方案之2.4G遥控玩具童车具有以下比较有特色的特点&#xff1a; 1、内置充电电池&#xff1a;这款小车配备了可充电的电池&#xff0c;无需频繁更换电池&#xff0c;既环保又方便。充电方式可能为USB充电或者专用…...

【为什么 Google Chrome 打开网页有时极慢?尤其是国内网站,如知网等】

要通过知网搜一点资料&#xff0c;发现怎么都打不开。而且B站&#xff0c;知乎这些速度也变慢了&#xff01;已经检查过确定不是网络的问题。 清空了记录&#xff0c;清空了已接受Cookie&#xff0c;清空了缓存内容……没用&#xff01;&#xff01;&#xff01; 不断搜索&am…...

FastAPI - 数据库操作5

先安装mysql驱动程序 pipenv install pymysql安装数据库ORM库SQLAlchemy pipenv install SQLAlchemy修改文件main.py文件内容 设置数据库连接 # -*- coding:utf-8 –*- from fastapi import FastAPIfrom sqlalchemy import create_engineHOST 192.168.123.228 PORT 3306 …...

HTML静态网页成品作业(HTML+CSS)—— 冶金工程专业展望与介绍介绍网页(2个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有2个页面。 二、作品演示 三、代…...

Flutter基础 -- Dart 语言 -- 注释函数表达式

目录 1. 注释 1.1 单行注释 1.2 多行注释 1.3 文档注释 2. 函数 2.1 定义 2.2 可选参数 2.3 可选参数 默认值 2.4 命名参数 默认值 2.5 函数内定义 2.6 Funcation 返回函数对象 2.7 匿名函数 2.8 作用域 3. 操作符 3.1 操作符表 3.2 算术操作符 3.3 相等相关的…...

“仿RabbitMQ实现消息队列”---整体架构与模块说明

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、概念性框架理解 我们主要实现的内容&#xff1a; 1.Broker服务器&#xff1a;消息队列服务器&#xff08;服务端&…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...