当前位置:网站首页 > 技术博客 > 正文

进程和线程的基本概念及两者之间的区别?



一、程序、进程、线程的概念:

1.程序:是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标计算机体系结构上。

2.进程:是计算机中的软件程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,是系统分配资源和调度的基本单位,也就是说进程可以单独运行一段程序。

3.线程:是进程中的一个实体,是被系统独立调度和分派的基本单位,是CPU调度和分派的最小基本单位,线程自己不拥有操作系统资源,但是该线程可与同属进程的其他线程共享该进程所拥有的全部资源。

4.进程是程序的实体,而线程又是进程的实体。进程又是线程的容器。

二、程序、进程、线程三者区别如下:

1.程序:程序并不能单独执行,是静止的,只有将程序加载到内存中,系统为其分配资源后才能够执行。

2.进程:程序对一个数据集的动态执行过程,一个进程包含一个或者更多的线程,一个线程同时只能被一个进程所拥有,进程是分配资源的基本单位。进程拥有独立的内存单元,而多个线程共享内存,从而提高了应用程序的运行效率。

3.线程:线程是进程内的基本调度单位,线程的划分尺度小于进程,并发性更高,线程本身不拥有系统资源,但是该线程可与同属进其他线程共享该进程所拥有的全部资源。每一个独立的线程,都有一个程序运行的入口、顺序执行序列和程序的出口。

4.进程、线程区别

 
  

5.每个应用程序都使用一块内存区域,这个内存区域可以称为一个进程,内存区域中是需要执行代码的,具体执行代码就是线程去执行的。 注意:进程只是负责开辟内存空间的,线程才是负责执行代码逻辑的执行单元。

三、多进程、多线程的区别如下:

1.多进程:每个进程互相独立,不影响主程序的稳定性,某个子进程崩溃对其他进程没有影响,通过增加CPU可以扩充软件的性能,可以减少线程加锁/解锁的影响,极大提高性能。缺点是多进程逻辑控制复杂,需要和主程序交互,需要跨进程边界,进程之间上下文切换比线程之间上下文切换代价大。

2.多线程:无需跨进程,程序逻辑和控制方式简单,所有线程共享该进程的内存和变量等。缺点是每个线程与主程序共用地址空间,线程之间的同步和加锁控制比较麻烦,一个线程的崩溃会影响到整个进程或者程序的稳定性。

四、互斥锁、信号量

五、单线程和多线程

线程:是进程中的一个执行控制单元,执行路径。
一个进程中至少有一个线程在负责控制程序的执行。
一个进程中如果只有一个执行路径,这个程序称为单线程程序。
一个进程中如果有多个执行路径时,这个程序就称为多线程程序。


单线程和多线程有什么区别呢? 
举一个火车站卖票的例子。 
一个窗口卖票的时候效率就太低了,如果同时有上百个窗口卖票,这个时候效率就高了。
多线程最明显的效率就是提高执行效率。 多线程的出现可以有多条执行路径,让多部分代码可以同时执行,来提高效率。


参考地址:

版权声明


相关文章:

  • sql触发器的使用及语法2025-07-23 23:01:01
  • 扩散系数d的单位怎么来的2025-07-23 23:01:01
  • javajdk哪个版本好2025-07-23 23:01:01
  • es6最新特性2025-07-23 23:01:01
  • 武汉电信的ip地址是多少2025-07-23 23:01:01
  • 结构体(例题详解)2025-07-23 23:01:01
  • 线程池的理解及使用2025-07-23 23:01:01
  • java的工具2025-07-23 23:01:01
  • crossorigin注解原理2025-07-23 23:01:01
  • linux自带的虚拟机2025-07-23 23:01:01