本文简单阐述了进程与线程的关系,为了便于理解,本文也将简述CPU的工作原理。

  进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。或者说进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

  线程则是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

进程和线程的关系:

  (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

  (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

  (3)处理机分给线程,即真正在处理机上运行的是线程。

  (4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

打开你的任务管理器就能看到进程一栏。如下图:

程序、线程、进程的树形关系图如下:

操作系统的设计,因此可以归结为三点:

(1)以多进程形式,允许多个任务同时运行;

(2)以多线程形式,允许单个任务分成不同的部分运行;

(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

  例如我们在玩格斗游戏程序的时候,玩家1出拳时,玩家2格挡,这两个动作是同时发生的,所以此时涉及到了多线程,所以游戏进程要至少有两个线程,分别为出招和格挡。比如我们用QQ聊天,同时开着QQ音乐,此时大家感觉QQ聊天和QQ音乐是同时进行的,但是CPU在同一时间只能处理一件事情。

我想大家小的时候都应该看过或者很喜欢看一种漫画书,当你快速的翻阅那本书的时候,书上的人物好像动起来了一样,就是所谓的逐帧动画,CPU的处理事件的原理与其类似。

当你运行QQ聊天和QQ音乐的时候,CPU的工作就是不断的切换进程,如果每秒切换6次,你一定会觉得卡,如果切换的足够快,你将会感觉是同时在运行QQ音乐和QQ聊天。

结论:

  (1)线程是进程的一部分

  (2)CPU调度的是线程

  (3)系统为进程分配资源,不对线程分配资源

原文地址:http://blog.csdn.net/u013322876/article/details/50595886

转载于:https://www.cnblogs.com/copperhaze/p/6003357.html

进程丶线程丶CPU关系简述相关推荐

  1. Linux -- 进程或线程独占CPU

    如果想让特定进程或线程独占某一或某些CPU,我们需要做三件事. 一,隔离CPU,避免其它线程run在被隔离的CPU上. 二,绑定所有的interrupts到非隔离的CPU上,避免被隔离的CPU收到in ...

  2. linux 下进程和线程指定CPU运行

    大概的介绍一下linux 的指定CPU运行,包括进程和线程,这个只是最基本的方法,看一下基本就会了,至于其他的进程间通信和线程同步的话,这里暂不做任何介绍. 算了,还是比较整体的介绍一下如何去学习这个 ...

  3. delphi取得进程与线程的CPU使用率

    就是这个类了,取得进行与线程的CPU使用率,也是从国外技术站上学来的 unit bCPUUsage; interface uses Windows, SysUtils, MMSystem; const ...

  4. 进程与线程之间的关系(一)

    突然想聊一下自己对进程和线程的初步理解 进程: 进程是操作系统分配资源的基本单位 进程 就是操作系统 为应用程序的执行 分配的资源 进程就是一个容器,操作系统通过运行进程容器中的线程,来完成应用程序进 ...

  5. Java大厂面试题:从 JVM 角度说进程和线程之间的关系

    下面来思考这样一个问题:为什么程序计数器.虚拟机栈和本地方法栈是线程私有的呢?为什么堆和方法区是线程共享的呢? 1.3.2 程序计数器为什么是私有的? 程序计数器主要有下面两个作用: 字节码解释器通过 ...

  6. oracle多线程类连接数,数据库连接数,服务器进程,线程之间什么关系?

    服务器进程--spid 大部分系统都表示server process在OS层面的process ID==操作系统进程ID: 数据库进程--这里用Oracle做例子 pid 这里可以理解为Oracle自 ...

  7. linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?

    进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...

  8. 多CPU ,多核和进程以及多线程之间的关系

    今天开始,这个专题主要讲解 java 并发编程系列,从操作系统的进程.CPU.线程等底层开始, 到java 并发工具类,线程.线程池,并发容器.CAS.AQS等原理.源码和使用均做深入的解析.今天讲 ...

  9. Linux--进程和计划任务管理 理论干货+实操(程序,进程,线程之间关系的详解,静态与动态查看进程方式,控制进程的 方式,一次性任务与周期性任务的设置)

    文章目录 前言 一:程序,进程,线程之间的关系 1.1:进程概述 1.2:应用程序,进程和线程的关系 1.2.1:程序和进程的关系 1.2.2:进程和线程的关系 二:查看进程 2.1:静态查看 ps命 ...

最新文章

  1. 从Nginx绑定80端口学套接字编程
  2. 程序员面试题精选100题(53)-C++/C#面试题(2)
  3. cnn stride and padding_Tensorflow学习笔记- 模型建立与训练篇(CNN)
  4. app启动速度阶段指标
  5. 沙龙报名 | 数据库技术探索及行业应用
  6. 在C#中利用DirectX实现声音播放
  7. JDK动态代理和CGLib动态代理简单演示
  8. 【C语言】用函数实现两个数排序(指针作函数参数)
  9. linux:errno与signum:错误码与信号
  10. 利用Java手写简单的httpserver
  11. 集体智慧编程4-优化
  12. 浪潮信息服务器拆解,浪潮英信服务器NP3020M2拆解
  13. Python中列表的常用方法总结
  14. dither技术的原理及应用
  15. 山下英子(日)《断舍离》读书笔记
  16. 将字体变成红色加粗字体
  17. Caffe-SCIR
  18. 如何全面的理解APS自动排产系统?
  19. 【vue】二、vue2仿去哪儿网app——首页开发
  20. 《算法交易与套利交易》

热门文章

  1. java初学课程_作为java新手应该学习什么课程
  2. 这才是真正的男人的格局
  3. diff git 代码实现_Git diff 算法
  4. python3中类的继承
  5. C++ initializer_list 类型详解
  6. [攻防世界 pwn]——实时数据监测
  7. 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件
  8. Use the Shapes window to organize and find shapes
  9. 使用MessageFormat格式化数字,日期
  10. Hibernate query by Example