cpu内核数与进程、线程是怎样一个关系

我的理解:cpu在进程中来回切换,当一个进程得到cpu后,再在线程中切换,这么理解不知道对不对,
希望能够得到解答。

0

3个回答

进程和线程的关系。进程可以简单理解为一个容器,有自己独立的地址空间,其内部的各个线程共享该地址空间。线程是操作系统进行资源调度的单位,
其实严格讲应该是线程能够获得CPU资源,进程对CPU资源的获取也是体现在线程上的。至于CPU内核数,和进程线程没直接关系,操作系统可以把某个
进程部署在某个CPU核上,当然这要取决于系统设计。

2

线程是cpu调度的最小单位,操作系统会根据进程的优先级和线程的优先级去调度cpu。一个计算机可以并发的线程数,等于计算机上的逻辑处理器的个数。
进程、线程是操作系统调度的,进程本身不会负责调度线程。在操作系统看来,线程和进程其实差不多,不同点是线程是迷你的进程,并且进程可以包含多个线程。

2

进程是一个载体,真正运行的功能是线程。而线程的执行需要CPU
所以你的理解差不多。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
CPU个数,核心数,线程数
我们在买电脑的时候,经常会看cpu的参数,对cpu的描述有这几种:“双核”、“双核四线程”、“四核”、“四核四线程”、“四核八线程”……。 我们接触的电脑基本上都只有一个cup。cpu的个数很容易得到,螺丝刀拆开你的电脑数一下就行了。这没有什么好说的。 为了给电脑更高的性能,一个cup中集成了多个内核,这样电脑的性能就成倍的提升。随着科技的发展,我们发现每个内核的性能也变的十分强大,于是一个内...
认识cpu、核、进程与线程——备忘篇
前言:作为一个运维人员,我想有必要了解这些基础硬件知识。如果本文有不严谨或者疏忽的地方,请指正。cpu与核心物理CPU物理CPU是相对于虚拟CPU而言的概念,指实际存在的CPU处理器,安装在PC主板或服务器上。物理核CPU中包含的物理内核(核心)个数,比如多核CPU,单核CPU(古老的CPU)。这个多核或者单核已经集成在CPU内部了。在linux系统下面的/proc/cpuinfo文件的条目中:有...
CPU 的核心数与线程数量是什么关系?(个人理解)
  1==>  简单点说,处理器核数(包括超线程数)是一种执行资源,资源数量就是核数个数。 2==>  应用程序的线程数就是服务请求数。 3==> 而操作系统的作用是如果用有限的资源来服务好应用程序的请求,这就是进程调度的功能。 4==> 一般情况下,服务请求线程会“相对公平” 地分配到核上运行,并且在时间片上轮流使用的,即并发执行 (不一定是并行执行) 比如系统...
多线程与CPU核心的关系
回答一:百度知道 每个单位时间内,一个CPU只能处理一个线程(操作系统:thread),以这样的单位进行,如果想要在一单位时间内处理超过一个线程是不可能的,除非是有两个CPU的实体单元。多核心技术是将多个一样的CPU放置于一个封装内(或直接将两个CPU做成一个芯片),而英特尔的HT技术是在CPU内部仅复制必要的资源、让CPU模拟成两个线程;也就是一个实体核心,两个逻辑线程,在一单位时间内处理两个...
服务器CPU主频和内核数量及性能之间关系的探讨
服务器CPU主频和内核数量及性能之间关系的探讨  上周打电话咨询dell售后关于R720服务器CPU内核数量和主频之间的关系的一个问题,和售后磨叽了2个多小时后售后工程师一直也没有给出一个令人信服的答案,笔者只好通过查阅相关资料以及和同事讨论后有了个清晰的答案。现将该问题整理了一下分享出来,以供大家学习和参考。 疑惑1:服务器的主频怎么计算?单颗主频*内核数量吗? 疑惑2:服务器cpu的性能
结合CPU跟内存浅谈进程与线程
讲起服务器的性能,有两个指标,不容忽视,那就是CPU跟内存。下面,结合CPU跟内存来讲一下我对进程跟线程的理解。
对内核,内核线程,用户线程,用户态,内核态,进程等理解
最近一直在研究操作系统,浅谈一下, 以下文章涉及到我对内核,内核线程,用户线程,用户态,内核态,进程等理解 如果有理解不对的地方,希望大神可以指出错误. 我对Linux 最近的理解,Linux内核是一个支撑软件,是操作系统的核心,负责管理所有的硬件资源,cpu,内存,文件等,我先说一下我理解的进程和线程,进程就是一个程序(软件)的动态过程,软件本身是静态,当启动软件时操作系统就会为这个软件启动一个...
绑定进程到指定cpu
绑定进程到特定cpu去执行,只是一个简单的例子,直接可以通过gcc编译好了在pc上运行。
cpu个数、核数、线程数、Java多线程关系的理解
一 cpu个数、核数、线程数的关系 cpu个数:是指物理上,也及硬件上的核心数; 核数:是逻辑上的,简单理解为逻辑上模拟出的核心数; 线程数:是同一时刻设备能并行执行的程序个数,线程数=cpu个数 * 核数【如果有超线程,再乘以超线程数】 二 cpu线程数和Java多线程 首先明白几个概念: (1) 单个cpu线程在同一时刻只能执行单一Java程序,也就是一个线程 (2) 单个...
python关于多线程的GIL问题,以及CPU分配核数的问题
对于Python中,多线程的问题详细描述:        在Python中,其实对于多线程的运行方案并不完美,纯属的Python多线程运行时,只能实现并发执行,对于现在的多核CPU来说,有点浪费CPU资源,但在其他的语言中,并没有这个问题。    这一切都是由于时代的原因,在上个世纪80年代,由于硬件的发展,当时的电脑只是单核CPU,并没有今天的多核CPU。发明Python语言的龟叔,为了实现单核...
CPU和内存 程序(线程)关系
先来介绍下CPU: CPU容量小 需要别人给她指令但是运转速度快 主要是寄存器构成的 1. 通过控制器从内存中读入指令和数据到寄存器中并根据结果来控制整个计算机 2. 而运算器负责运算从内存读入的寄存器的数据 3. 时钟负责发出CPU开始计时的时钟信号 4. 运行速度:CPU>内存>硬盘 5. 只是用来运行指令 但是不能保存指令 指令是在内存中 6. 第一条指令是在...
线程数量与程序性能的关系
本文纯属经验之谈,关于单线程和多线程与程序性能的关系!   首先绝大多数设备都是多核的,多线程能比单线程更充分的利用cpu,多线程如果使用线程池就能省下创建线程的开销.如果只是纯粹的计算可能会比单线程要高,而且计算量越大差距会越明显   在我们的实际业务中,以读取数据库为例,当涉及到各种的io操作情况下,毫不犹豫的应该选择多线程了,能避免io传输带来无谓的耗时. 处理能力得到有效的提升...
linux下进程绑定cpu情况查看
1.pidstat命令 查看进程使用cpu情况,如果绑定了多个cpu会都显示出来 pidstat -p `pidof 进程名` -t 1 2.top命令 (1)top (2)按f键可以选择下面配置选项 P       = Last Used Cpu (SMP) (3)Esc 退回到top界面可以看到多了一列进程所在cpu信息
如何将一个进程(线程)绑定到一个固定的CPU核上?
google一圈,能够实现的方式有两种:第一种:linux的shell命令行方式,命令名字为taskset。第二种就是代码实现级别的了,pthread_setaffinity_np和sched_setaffinity函数接口。         第一种方式我已经验证过了,确实可行。同时验证了我心中的疑问:如果将某个线程绑定到某个物理核上之后,在此线程运行结束前,会不会有别的线程被调度到此物理核
进程,线程,内核设置cpu亲和性
进程与cpu绑定 sched_setaffinity可以将某个进程绑定到一个特定的CPU。 SCHED_SETAFFINITY(2) Linux Programmer's Manual ...
Linux编程-让进程或线程运行在指定的CPU上
      By:Ailson Jack       Date:2016.03.18       个人博客:www.only2fire.com       本文在我博客的地址是:http://www.only2fire.com/archives/55.html,排版更好,便于学习。       为了让程序拥有更好的性能,有时候需要将进程或线程绑定到特定的CPU上,这样可以减少调度的开销和保...
多CPU和多进程和多线程
由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU直到运行结束,于是出现了操作系统调度器,而进程也成为了调度单位.在这里就出现了并发的概念,调度器切换CPU给不同进程使用的速度非常快. 时间片轮转: 在计算机中进程执行时需要操作系统为其分配各种资源,比如内存空间,寄存器等等,但在计算机中不可能只有一个进程,因此操作系统需要为这些进程合理分配资源,使其在运行的时候不发生...
线程(2)--浅谈cup时间片
cup时间片简述: 前提条件是:1.计算机是单核的 2.该程序有三个线程 3.一个时间片是1ms 什么是时间片? 程序在执行过程中,首先会进入主线程(main),运行main方法,当时间到达时间片的时间后,cup会推出主线程,然后随机选择一个线程(主线程、线程t或是线程myThread),进入到cup中执行线程,c
linux下进程的进程最大数、最大线程数、进程打开的文件数和ulimit命令修改硬件资源限制
linux系统中ulimit查看和更改系统限制ulimitulimit用于shell启动进程所占用的资源,可以用来设置系统的限制语法格式 ulimit [-acdfHlmnpsStvw] [size] 在/etc/security/limits.conf文件中定义 限制。 命令参数 描述 例子 -H 设置硬资源限制,一旦设置不能增加。 ulimit – Hs 64;限制硬
linux下把进程/线程绑定到特定cpu核上运行
概述 现在大家使用的基本上都是多核cpu,一般是4核的。平时应用程序在运行时都是由操作系统管理的。操作系统对应用进程进行调度,使其在不同的核上轮番运行。 对于普通的应用,操作系统的默认调度机制是没有问题的。但是,当某个进程需要较高的运行效率时,就有必要考虑将其绑定到单独的核上运行,以减小由于在不同的核上调度造成的开销。 把某个进程/线程绑定到特定的cpu核上后,该进程就会一直在此核上运行,不...
线程池线程数与(CPU密集型任务和I/O密集型任务)的关系
近期看了一些JVM和并发编程的知识,来做一个关于(线程池线程数与(CPU密集型任务和I/O密集型任务)的关系)的总结: 1.任务类型举例: 1.1: CPU密集型: 例如,一般我们系统的静态资源,比如js,css等,会存在一个版本号,如 main.js?v0,每当用户访问这个资源的时候,会发送一个比对请求到服务端,比对本地静态文件版本和服务端的文件版本是否一致,不一致则更新.这种任务一般不占
线程进程是怎样使用多核的
        最近由于有抢票的需求,对于一个用户而言,用一个死循环,一个刷票就好了,刷到了就break退出。但是现在我要考虑同时给很多人抢,那么必须要考虑并发。但是这是一个耗时的任务,很可能几天都不能结束这个任务,所以这个和普通的java web并发不同。我在思考如何设置这个线程模型时引出了一个问题,之前还一直都没思考过这个。  多核时,一个线程是始终由一个cpu核运行还是每个cpu核都会运行...
根据机器内核个数创建线程池
ExecutorService es= Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*2); 线程池大小建议为内核个数得两倍
(二)了解CPU、GPU、进程、线程、CUDA
GPU和CPU的区别是什么?
设置Python进程运行于固定CPU代码
Python的线程在多核情况下,由于GIL的存在,运行效率会比单核情况下还低,这个时候,可以通过设置运行Python代码的进程所在的CPU以提高线程的性能,达到和单核处理器时一致的性能。该代码从 https://pypi.python.org/pypi/affinity/0.1.0 修改而来,去掉了原代码中对pywin32的依赖。
C/C++:系统IDLE、进程CPU占用率、CPU核心数以及进程中的线程数
C/C++:系统IDLE、进程CPU占用率、CPU核心数以及进程中的线程数 TOP命令可以显示当前进程的CPU占用率、CPU核心数以及系统忙闲程度(idle)。 他们之间有什么关系呢? 实验主机配置:物理CPU*4,逻辑CPU*8。 [root@eb50 ~]# grep 'physical id' /proc/cpuinfo | sort -u physical id : 0 physi...
线程与进程 计算密集型 IO密集型
线程与进程:   线程和进程通常都有一个主线/进程的负责分配任务和其他子线/进程负责执行任何。   多进程的优点在于一个子进程挂了,不会影响其他进程(主进程挂了就全挂了),但是其创建的代价较大,Apache采用的就是多进程机制;   而多线程一般要比多进程执行效率要高,但是由于共享内存一旦子线程挂了,就全挂了,ISS采用的就是多线程机制。 计算密集型 IO密集型   计算密集型任务主要消耗
遍历进程运行线程数
#include "stdafx.h"#include <Windows.h>#include <TlHelp32.h>#include <stdio.h>#include <stdlib.h>void TestProcessGetThreadNumber() { int i = 0; char Buff[9]; PROCESSENTRY32 pe3...
centos系统查看系统版本、内核版本、系统位数、cpu个数、核心数、线程数
centos查看系统版本 cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)    1)查看centos内核的版本: [root@localhost ~]#  cat  /proc/version Linux version 2.6.18-194.el5 (mockbuild@builder10.centos.org...
绑定Java进程到指定的cpu核上
taskset可以指定进程绑定到哪个个cpu核上,如4核超线程的cpu,共8个核,如: cpu0,cpu1,...,cpu7==> (1).taskset -pc 0 ./ ==>绑定到cpu0上,启动时和运行时都有效 扩展应用:time taskset -pc 0 ./==>可以后台启动(telnet ip port正常),但是访问不正常! 扩展应用:taskset -c...
linux 查看某个进程中的线程,线程占用哪个cpu的核心的方法
查看进程中启动线程的方法 top -H -p pid -d 0.3 按f键进入选择界面,按空格可以选择下面配置选项 P = Last Used Cpu (SMP) 按Esc 退回到top界面可以看到多了一列进程所在cpu信息 ...
VC获取进程的cpu使用率、内存、线程数、句柄数等信息
//ProcessInfoCollect.h //进程信息采集 #pragma once //枚举进程 typedef BOOL(_stdcall *ENUMPROCESS)( DWORD *pProcessIds, //指向进程ID数组链 DWORD cb, //ID数组的大小,用字节计数 DWORD *pBytesReturned //返回的字...
如何查看电脑核数和线程数(网传方法有误)
一、常见错误方法 1.查看电脑核数 右键计算机->设备管理器->处理器(如下图,处理器下有几个即为几核,按这种方式来看我的电脑为八核,其实并不是这样,下面我会解释) 2.查看电脑线程数 右键屏幕底部->启动任务管理器->性能->CPU使用记录(如下图,有几个框即为几线程,我的电脑为八线程,这种方式查看线程是可以的,但用这种方式查看核数是错误的) 然而真的是这样吗?我买的电
线程与内核绑定
多内核主机上,创建了多个线程,可以把线程绑定到指定的内核上。 这样可以充分发挥多个内核的性能优势,减少上下文切换。 线程与内核绑定方法: 1、头文件  #include #include 2、绑定 1)获取cpu内核数目 int cpu_num = get_nprocs();  2)创建多个线程 pthread_t thread_id; pthread
并行编程实战记录----多线程与MPI多进程
工作半年以来,大部分时间都在做RNN的研究,尤其是通过lstm(long-short term memory)构建识别模型。我专注的是使用rnnlib工具开展模型的训练工作,以搭建有效的识别模型。Rnnlib(http://sourceforge.net/projects/rnnl/)由Alex Graves提供,是解决序列识别问题的RNN工具包,尤其是对隐含层提供了lstm的算法实现。在Alex
内核线程、轻量级进程、用户线程
内核线程 内核线程需要系统内核支持,只有系统内核支持这种线程才能谈内核线程,内核线程只运行在内核态,不受用户态上下文的拖累,内核线程只能由系统内核管理,像普通进程一样被调度。支持多线程的内核称为多线程内核。 内核线程可以在系统范围内竞争处理器资源,唯一使用的资源是内核栈和上下文切换时保持寄存器的空间。 轻量级进程 轻量级进程(LWP, Light-Weight Process)也是一种...
linux的内核进程/线程
linux启动后,内核自动执行如下线程 kthreadd:这种内核线程只有一个,它的作用是管理调度其它的内核线程。它在内核初始化的时候被创建,会循环运行一个叫做kthreadd的函数,该函数的作用是运行kthread_create_list全局链表中维护的kthread。可以调用kthread_create创建一个kthread,它会被加入到kthread_create_list链表中,同时kth...
CPU颗数 核数 线程数
对Itel i7 6700 cpu 四核八线程的主频频率为3.4GHz的理解:首先:CPU的线程数概念仅仅只针对Intel的CPU才有用,因为它是通过Intel超线程技术来实现的,如果没有超线程技术,一个CPU核心对应一个线程。所以,对于AMD的CPU来说,只有核心数的概念,没有线程数的概念。 双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。所以上面的可以理解...
C# 获取当前所有进程线程CUP占用率
监控系统所有进程的CPU使用情况 显示CPU占用大于0的进程,定时刷新 可以查看当前系统运行的各进程cpu占用率 在CSDN上找到两个都不太好用,自己写了一个VS2013环境下编译通过 也可以直接运行\bin\Debug目录下的ConsoleApplication1.exe文件 用途:查看自己写的程序那个线程运行时间最多,耗资源等。
Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
转载请注明出处: https://yakir-yang.github.io/ 栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。