首页 > 系统相关 >1:进程与线程有什么区别?

1:进程与线程有什么区别?

时间:2022-10-23 20:11:25浏览次数:43  
标签:区别 阻塞 并发 线程 进程 就绪 运行

1、线程的基本概念

概念:

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

好处 :

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

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

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

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

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

进程和线程的关系:

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

进程与线程的区别:

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

4、进程间通信的方式

(1)管道(pipe)及有名管道(named pipe):管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。

(2)信号(signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一致的。

(3)消息队列(message queue):消息队列是消息的链接表,它克服了上两种通信方式中信号量有限的缺点,具有写权限得进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可以从消息队列中读取信息。

(4)共享内存(shared memory):可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据得更新。这种方式需要依靠某种同步操作,如互斥锁和信号量等。

(5)信号量(semaphore):主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段。

(6)套接字(socket):这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。

 

标签:区别,阻塞,并发,线程,进程,就绪,运行
From: https://www.cnblogs.com/YOUNG-LY/p/16819339.html

相关文章

  • 进程与线程的区别
     两者定义不一样,进程是执行中的一段程序,而一个进程中执行中的每个任务即为一个线程,一个线程只可以属于一个线程,但一个进程能包含多个线程。并且线程无地址空间,它包括在进......
  • 进程和线程的区别(超详细)
    进程和线程进程一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。线程进......
  • 进程和线程的区别
    进程一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程。线程进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程......
  • 进程与线程的区别
    线程的基本概念概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可......
  • 进程与线程的区别
    1、线程的基本概念概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但......
  • 进程与线程的区别
    首先来说进程和线程两个全是基本单元,完全是为了操作系统运行程序而存在的。该类系统为了要实现应用程序的并发性处理,就必须要运用该基本单元。因此它们之间有相似处也有区......
  • 进程与线程的区别与联系
    进程与线程的区别与联系一、线程和进程的基本概念线程:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只......
  • 进程与线程的区别
    基本概念:进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进......
  • 解决PHP-FPM进程导致的服务器内存占用
    最近php-fpm服务器经常内存偏高。最简单也是马上见效的方法是重启服务,干脆重启服务器,这个对于某些临时进程导致的内存虚高可能有效,这里显然是不行滴。很可能影响到业务。......
  • Linux不杀进程清理 lsof中deleted 状态的文件
    一、问题之前已经写过一篇"<<Linux磁盘占用率与使用率不符>>"将进程kill掉就行但是如果进程不能被停止呢之前碰到一个例子:朋友的系统盘空间爆满,du-sh查找不出问题,lsof|gre......