精华内容
下载资源
问答
  • 线程 CPU 4核8线程 的解释

    千次阅读 2019-09-27 22:49:18
    所谓的4核8线程4核指的是物理数。通过超线程技术,用一个物理 模拟两个虚拟,每个虚拟1个线程,总数为8线程。 在操作系统看来是8,但是实际上是4个物理。 通过超线程技术可以实现单个物理实现线程...

    1、物理CPU:

    物理CPU就是计算机上实际配置的CPU个数。
    在linux上可以打开cat /proc/cpuinfo 来查看,其中的physical id就是每个物理CPU的ID,能找到几个physical id就代表计算机实际有几个CPU。

    在linux下可以通过指令 grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l 来查看物理CPU个数。

    2、cpu核数:
    linux的cpu核心总数也可以在/proc/cpuinfo里面通过指令cat /proc/cpuinfo查看的到,其中的core id指的是每个物理CPU下的cpu核的id,能找到几个core id就代表计算机有几个核心。
    也可以使用指令cat /proc/cpuinfo | grep “cpu cores” | wc -l来统计cpu的核心总数。

    3、逻辑CPU:
    操作系统可以使用逻辑CPU来模拟出真实CPU的效果。在之前没有多核处理器的时候,一个CPU只有一个核,而现在有了多核技术,其效果就好像把多个CPU集中在一个CPU上。

    当计算机没有开启超线程时,逻辑CPU的个数就是计算机的核数。而当超线程开启后,逻辑CPU的个数是核数的两倍。

    ***实际上逻辑CPU的数量就是平时称呼的几核几线程中的线程数量,在linux的cpuinfo中逻辑CPU数就是processor的数量。***
    ***************************************************************************************************
    物理核
    物理核数=cpu数(机子上装的cpu的数量)*每个cpu的物理核数

    虚拟核
    所谓的4核8线程,4核指的是物理数。通过超线程技术,用一个物理核 模拟两个虚拟核,每个虚拟核1个线程,总数为8线程。
    在操作系统看来是8个核,但是实际上是4个物理核。
    通过超线程技术可以实现单个物理核实现线程级别的并行计算,但是比不上性能两个物理核。

    单核cpu和多核cpu
    都是一个cpu,不同的是每个cpu上的核心数
    多核cpu是多个单核cpu的替代方案,多核cpu减小了体积,同时也减少了功耗
    一个核心只能同时执行一个线程
    ***************************************************************************************************


    CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的。
    CPU所有的计算、接受/存储命令、处理数据都由核心执行,各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有科学的布局。

     ***************************************************************************************************

    1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)

    2.cpu核数:单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)

    3.逻辑cpu数:简单来说,它可使处理器中的1颗内核,如2颗内核那样在操作系统中发挥作用。

    这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理CPU个数×每颗核数x2。

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

    所以这算双核的。

     

     

    转载于:https://www.cnblogs.com/kelelipeng/p/11583611.html

    展开全文
  • 如果当前仅有核心线程存在,如果允许释放核心线程的话,也就核线程的处理方式一样,反之,则通过take一直阻塞直到拿到任务,这也就是线程池里的核心线程为什么不死的原因。 线程池不区分核心线程非核心线程,...

    线程池里的线程从阻塞队列里拿任务,如果存在非核心线程,假设阻塞队列里没有任务,那么非核心线程也要在等到keepAliveTime时间后才会释放。如果当前仅有核心线程存在,如果允许释放核心线程的话,也就和非核线程的处理方式一样,反之,则通过take一直阻塞直到拿到任务,这也就是线程池里的核心线程为什么不死的原因

    线程池不区分核心线程和非核心线程,线程池是期望达到corePoolSize的并发状态,并允许在不得已情况下超载,达到corePoolSize ~ maximumPoolSize 的并发状态

    参考:https://www.sohu.com/a/343713059_659256

    展开全文
  • Linux:查看线程运行于哪个CPU核心上

    千次阅读 2019-02-27 22:10:15
    Linux:查看线程运行于哪个CPU核心上 线程是最小的执行调度单元,线程执行于某个CPU核心之上,或者说某个CPU核心执行此线程。 如何查看某线程运行于哪个CPU核心上呢? 方法一:ps -eLF 查找 PSR 字段值 [test1280@...

    Linux:查看线程运行于哪个CPU核心上

    线程是最小的执行调度单元,线程执行于某个CPU核心之上,或者说某个CPU核心执行此线程。

    如何查看某线程运行于哪个CPU核心上呢?


    方法一:ps -eLF 查找 PSR 字段值

    [test1280@localhost 20190227]$ ps -eLF
    UID         PID   PPID    LWP  C NLWP    SZ   RSS PSR STIME TTY          TIME CMD
    root          1      0      1  0    1  4836  1548   2 Feb25 ?        00:00:02 /sbin/init
    root          2      0      2  0    1     0     0   2 Feb25 ?        00:00:00 [kthreadd]
    root          3      2      3  0    1     0     0   0 Feb25 ?        00:00:00 [migration/0]
    ……
    

    测试代码:

    main.c

    #define _GNU_SOURCE
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <pthread.h>
    
    void *start_routine(void *arg) {
    	const char *msg = "thread: i am thread";
    	while (1) {
    		write(1, msg, strlen(msg));
    		sleep(1);
    	}
    }
    
    int main() {
    
    	pthread_t tid;
    	pthread_create(&tid, NULL, start_routine, NULL);
    
    	const char *msg = "main: i am main\n";
    	while (1) {
    		write(1, msg, strlen(msg));
    		usleep(1000);
    	}
    
    	return 0;
    }
    

    运行输出:

    [test1280@localhost 20190227]$ gcc -o main main.c -lpthread
    [test1280@localhost 20190227]$ ./main
    ……
    main: i am main
    main: i am main
    thread: i am threadmain: i am main
    main: i am main
    ……
    

    查看此进程中两个线程运行于哪个CPU核心上:

    [test1280@localhost 20190227]$ pidof main
    11819
    [test1280@localhost 20190227]$ ps -eLF | grep 11819
    test1280  11819  11053  11819  0    2  4115   476   2 13:43 pts/1    00:00:00 ./main
    test1280  11819  11053  11820  0    2  4115   476   3 13:43 pts/1    00:00:00 ./main
    test1280  11823  11468  11823  0    1 25829   844   2 13:43 pts/2    00:00:00 grep 11819
    

    在 PID = 11819 的进程中:(参照 ps -eLF 输出字段顺序)

    1)TID = 11819 的线程在执行 ps 命令时运行于 #2 CPU 核心上;
    2)TID = 11820 的线程在执行 ps 命令时运行于 #3 CPU 核心上;

    man ps

    PSR      processor that process is currently assigned to.
    

    方法二:top -Hp $pid 并修改监控字段

    1.执行 top -Hp $pid

    [test1280@localhost 20190227]$ top -Hp 11819
    

    在这里插入图片描述
    2.键入 f(或者F)

    在这里插入图片描述
    3.键入 j(或者J)

    在这里插入图片描述
    4.回车确认 && 观察

    在这里插入图片描述
    我们发现,PID = 11819 的线程运行于 #3 CPU 核心上,与上次 ps -eLF 的 PSR 不同,发生了切换。


    方法三:taskset -pc $pid

    方法一、二都是执行查询命令那一时刻,执行进程(线程)运行于某CPU核心的快照。

    方法一、二并不能反映出待查询线程能运行于哪些CPU核心,即可运行CPU核心的集合。

    可通过 taskset -pc $pid 来获取某线程与CPU核心的亲和性(线程在运行中可能执行于CPU核心的集合)。

    请参考 taskset 命令 查看。

    参考资源:
    1.https://blog.csdn.net/ibless/article/details/82431101
    2.https://blog.csdn.net/rdc2008/article/details/41982963

    展开全文
  • CPU四核八线程和四核四线程的区别

    千次阅读 2020-10-30 10:01:24
    四个人每人在用一只手工作 四个人每人在用两只手工作 大概就是这个区别 https://zhidao.baidu.com/question/871291752790331852.html

    四个人每人在用一只手工作 四个人每人在用两只手工作
    大概就是这个区别

    https://zhidao.baidu.com/question/871291752790331852.html

    展开全文
  • Netty 与线程

    千次阅读 2019-10-26 10:04:28
    线程亲和性是指一个线程可以被强制在某一特定的 CPU 核和 CPU 组上运行。这样你就可以在操作系统调度过程中消除线程迁移,提升性能。幸运的是,目前就有一个名为 Java-Thread-Affinity 的 Java 库,可以轻松地与 ...
  • 线程(一):创建线程和线程的常用方法

    万次阅读 多人点赞 2018-09-01 19:14:23
    一:为什么要学多线程 应付面试 :多线程几乎是面试中必问的题,所以掌握一定的基础知识是必须的。 了解并发编程:实际工作中很少写多线程的代码,这部分代码一般都被人封装起来了,在业务中使用多线程的机会也...
  • 四核八线程

    千次阅读 2018-10-05 19:10:41
    四核八线程   四个物理核心,模拟成八个逻辑核心。 因为使用了超线程技术 , 把一个物理核心模拟成两个逻辑核心, 就像八个物理核心一样在同一时间可以执行八个线程。  ...
  • 四核8线程与八核的区别

    万次阅读 2018-01-17 21:02:27
    四核八线程是指使用了超线程技术 , 把一个物理核心,模拟成 两个逻辑核心, 理论上要像八颗物理核心一样在同一时间执行八个线程,所以设备管理器任务管理器中会显示出八个核心,但事实上并不是真正的八个核心,四核...
  • 线程 什么叫四核八线程

    千次阅读 2021-01-14 10:40:45
    CPU:通常指物理CPU,中央处理器,是计算机系统的运算控制的核心。 多核:指在一枚处理器(CPU)中集成两个或多个完整的计算引擎(内核)。 多技术的开发:工程师们认识到,仅提高单核芯片的速度会产生过多热量且...
  • 本文介绍多CPU、物理、逻辑、超线程、进程、线程、并发、并行,以及Linux查询CPU和核的信息的方法 易混淆概念 多处理器 认真辨别语境,一般是多CPU的意思;有时可能是多逻辑处理器即多核的意思,好像老外经常把...
  • 核心线程 :固定线程数 可闲置 不会被销毁ThreadPoolExecutor的allowCoreThreadTimeOut属性设置为true时,keepAliveTime同样会作用于核心线程 非核心线程数:非核心线程闲置时的超时时长,超过这个时长,非核心线程...
  • Java核心类库,线程通信

    千次阅读 2017-06-16 23:57:34
    线程通信: 不同的线程执行不同的任务,如果这些任务有某种关系,线程之间必须能够通信,协调完成工作。 我们来看一个案例:生产者消费者案例(producer/consumer) 生产者消费者应该操作共享的...
  • JAVA核心知识点--Thread线程基础

    万次阅读 多人点赞 2017-03-26 17:37:49
    四、线程的基本方法属性 五、线程资源共享示例 一、什么是线程线程是一个程序的多个执行路径,执行调度的单位,依托于进程而存在。 线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段...
  • Java:线程:CPU核心数目 与 多线程

    千次阅读 2018-10-01 00:16:29
     就绪:当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。 ...
  • CPU核心数目 与 多线程

    万次阅读 2017-03-16 22:05:23
    是不是几个的CPU开几个线程是最合适的?今天就这一问题查了一些资料,现整理如下:要说多线程就离不开进程,进程和线程的区别在这里就不详细说了,只将关键的几点: a)进程之间是相互独立的,不共享内存数据,...
  • 本系列作为多线程系列的补充 核心线程与普通线程区别,这个问题之前没有注意到过,最近面试被问,所以就单独写个文章分析下 其实这个也非常简单了 构造线程池的时候Executors.newxxx的方法,点进去,会发现内部是...
  • 【转】8核6核4核、双核CPU是什么意思

    万次阅读 多人点赞 2019-06-20 11:48:04
    对于初学者来说,CPU是什么、什么是双核、4核6核8核等。下面,就以上的问题,我们做出一一解答。 概念:CPU是什么、做什么用、一般CPU是接在哪里的,我们先来看看CPU是什么,CPU既中央处理器、电脑中一个最重要...
  • 大家, 请问下 4核8线程是什么意思, 是 4个CPU,每个都可以同时并行运行8线程吗, 谢谢! 这样的话,我是不是可以同时运行4*8=32个线程, 这些线程是真正意义上的并行处理吗,谢谢? I7-4770K CPU d ...
  • 知道上面这些,我们常说的几线程理解了。假设计算机有一个物理CPU核心,是双核的,支持超线程。那么这台计算机就是双核四线程的。 5. python查看CPU逻辑总数CPU物理核心 利用python的第三方模块psutil...
  • 物理CPU CPU核数 逻辑CPU 几线程的概念详解

    万次阅读 多人点赞 2017-10-26 20:10:42
    知道上面这些,常说的几线程理解了。假设计算机有一个物理CPU,是双核的,支持超线程。那么这台计算机就是双核四线程的。 所以两路(两路指的是有两个物理CPU)四核超线程就有2*4*2=16个逻辑CPU。有人也把...
  • 线程撕裂者3990x5950x哪个好

    千次阅读 2021-03-08 13:44:56
    线程撕裂者3990X为64核心128线程,主频为2.9GHz,最高加速频率可达4.3GHz。 ...一级缓存4MB,二级缓存32MB,三级缓存256MB。...锐龙9 5950X,现在的锐龙9 3950X一样都是双CCD模块、16核心32线程8MB二级缓
  • 随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4 8 甚至 16 的也都不少见,如果是单线程的程序,那么在双核 CPU 上就浪费了 50%, 在 4 CPU 上就浪费了 75%。单核 CPU 上...
  • 《Java多线程编程核心技术》推荐

    万次阅读 多人点赞 2016-03-04 21:35:43
    写这篇博客主要是给猿友们推荐一本书《Java多线程编程核心技术》。之所以要推荐它,主要因为这本书写得十分通俗易懂,以实例贯穿整本书,使得原本抽象的概念,理解起来不再抽象。只要你有一点点Java基础,你就可以...
  • 查看进程中启动线程的方法 top -H -p pid -d 0.3 按f键进入选择界面,按空格可以选择下面配置选项 P = Last Used Cpu (SMP) 按Esc 退回到top界面可以看到多了一列进程所在cpu信息 ...
  • 进程和线程的深入理解

    万次阅读 多人点赞 2019-04-25 00:14:40
    进程和线程的深入理解精确概括进程和线程的区别 既然要谈区别,那么首先需要理解什么是进程和线程。 之前,我读到一篇材料,发现有一个很的类比,可以把它们解释地清晰易懂。 1.计算机的核心是CPU,它承担了所有的...
  • 但是一直对其中提到的线程的实现模型比较迷惑, 这次就花了点时间怎么学习了一下子1 线程的3种实现方式在传统的操作系统中,拥有资源独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本...
  • 查看电脑是几线程

    千次阅读 2020-06-04 17:25:12
    1. 查看核心:桌面右键“计算机”,选择“属性”,在属性里有可知道几处理器了,这里我们只要看时钟频率,也就是CPU主频,如下图看到的是型号为i5 3210处理器,后面有1个2.5G一个2.7G的主频标注,因此可以知道该...
  • 以ThreadPoolExecutor为例子,线程池如何保证这些核心线程处于存活状态而不被终止

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 536,754
精华内容 214,701
关键字:

6核6线程和4核8线程哪个好