首页 > 系统相关 >进程与线程的区别与联系

进程与线程的区别与联系

时间:2022-10-23 19:35:24浏览次数:39  
标签:就绪 区别 阻塞 并发 线程 进程 执行

进程与线程的区别与联系

一、线程和进程的基本概念

线程:

线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

好处 :

(1)易于调度。 (2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。 (3)开销少。创建线程比创建进程要快,所需开销很少。。 (4)利于充分发挥多处理器的功能。通过创建多线程进程,每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。

进程
1、基本概念:
1)通俗的观念:程序的一个执行实例,或正在执行的程序。
2)内核的观点:担当分配系统资源(CPU时间和内存)的实体。

2、基本元素:
进程的两个基本元素是程序代码和数据集。
注意:程序代码可能被执行相同程序的其他进程共享。进程是一种动态描述,但是并不代表所有进程都在执行,因为进程在内存中因策略和调度需求会处于不同的状态。

二、进程的基本状态及状态之间的关系

状态:运行、阻塞、挂起阻塞、就绪、挂起就绪

状态之间的转换:准备就绪的进程,被CPU调度执行,变成运行态; 运行中的进程,进行I/O请求或者不能得到所请求的资源,变成阻塞态; 运行中的进程,进程执行完毕(或时间片已到),变成就绪态; 将阻塞态的进程挂起,变成挂起阻塞态,当导致进程阻塞的I/O操作在用户重启进程前完成(称之为唤醒),挂起阻塞态变成挂起就绪态,当用户在I/O操作结束之前重启进程,挂起阻塞态变成阻塞态; 将就绪(或运行)中的进程挂起,变成挂起就绪态,当该进程恢复之后,挂起就绪态变成就绪态;

三、线程和进程的关系以及区别?

进程和线程的关系:

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 (3)处理机分给线程,即真正在处理机上运行的是线程。 (4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体.

进程与线程的区别:

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行 (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源. (4)系统开销:在创建或

 

标签:就绪,区别,阻塞,并发,线程,进程,执行
From: https://www.cnblogs.com/leastl/p/16819237.html

相关文章

  • 进程与线程的区别
    基本概念:进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进......
  • 解决PHP-FPM进程导致的服务器内存占用
    最近php-fpm服务器经常内存偏高。最简单也是马上见效的方法是重启服务,干脆重启服务器,这个对于某些临时进程导致的内存虚高可能有效,这里显然是不行滴。很可能影响到业务。......
  • Linux不杀进程清理 lsof中deleted 状态的文件
    一、问题之前已经写过一篇"<<Linux磁盘占用率与使用率不符>>"将进程kill掉就行但是如果进程不能被停止呢之前碰到一个例子:朋友的系统盘空间爆满,du-sh查找不出问题,lsof|gre......
  • List和Map、Set的区别
    List和Map、Set的区别结构特点List和Set是存储单列数据的集合,Map是存储键和值这样的双列数据的集合;List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,......
  • JSON 和 JavaScript 介绍与区别
    Web开发依赖于JavaScript,但什么是JSON,以及JSON与JavaScript的区别是什么?了解WEB背后的技术对于寻求创新和充分利用可用资源的团队来说非常重要。所有与WEB相关的......
  • 进程和线程的区别
    进程    进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结......
  • Reactor 模式线程模型
    根据Reactor的数据量和处理资源池线程数量,可以分为3钟典型实现单Reactor单线程  单Reactor多线程  主从Reactor多线程 ......
  • tvm-多线程代码生成和运行
    本文链接https://www.cnblogs.com/wanger-sjtu/p/16818492.html调用链tvm搜索算子在需要多线程运行的算子,是在codegen阶段时插入TVMBackendParallelLaunch的调用。TVMB......
  • Java线程池源码深度解析
    核心机制再分析源码之前,我们还是先回顾和熟悉下线程的核心工作机制。线程池工作原理线程池采用的是一种生产者-消费者的模型,如下图:主线程调用execute、或者submit等方法提交......
  • Java线程池submit阻塞获取结果实现原理
    前言Java线程池中提交任务运行,通常使用​​execute()​​方法就足够了。那如果想要实现在主线程中阻塞获取线程池任务运行的结果,该怎么办呢?答案是用​​submit()​​方法提......