小猿圈操作系统之进程和线程区别

熵烬
• 阅读 112

进程与线程经常会放到一起提及,不管是学习linux、python还是其他语言,进程和线程都会用到,那么他们之间有什么练习和区别呢?今天小猿圈加加就说一下他们之间的关系。

一、定义

进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。它的执行需要系统分配资源创建实体之后,才能进行。

线程(Threading):也叫作轻量级进程,是一个基本的CPU执行单元,也是程序执行过程中的最小的单元。线程的特点就是在不需要独立资源的情况下就可以运行。

二、功能

每一个程序都至少有一个线程,若程序只有一个线程,那么就是程序本身。

单线程的进程可以简单的认为只有一个线程的进程。

一个进程在同一时间只做一件事,有了多线程后一个进程同一时间可以做多件事。

每个线程可以处理不同的事务。

无论系统有几个CPU,即使进程运行在单CPU上,多线程也可以是进程并发处理多个事务。

一个线程阻塞不会影响到另一个线程。

多线程的进程可以尽可能的利用系统CPU资源。

但也不是线程越多越好,线程越好,CPU分配给每个线程的时间片就越少。

进程在执行过程中拥有独立的内存单元,而同一个进程中的多个线程共享内存,拥有自己的栈空间,拥有独立的执行序列。分配资源时的对象必须是进程,不会给一个线程单独分配系统管理的资源。

进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,多进程环境中,任何一个进程的终止,不会影响到其他进程。而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,线程间是彼此依存的。多线程环境中,父线程终止,全部子线程被迫终止(没有了资源)。

进程和线程小编从定义和功能来说他们区别,不了解他们区别的小伙伴,现在对进程和线程有了新的认识吧,想要深入了解进程和线程,以及怎么创建线程,可以去小猿圈学习一下深层次的东西,希望你们可以对操作系统有深入的了解。

点赞
收藏
评论区
推荐文章
Java面试真题解析火爆全网,讲的太透彻了
8.15一面(60min)自我介绍,为什么投客户端python和java有什么区别java内存模型gc讲讲httphttps区别cookie,sessionhttps握手过程对称非对称加密算法?哪个效率高?tcp握手要三次,挥手要几次,为什么进程和线程,描述一下进程通信方式线程同步
DevOpSec DevOpSec
4年前
python多线程原理和详解(一)
python多线程原理和详解线程概念1.线程是什么?线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。
BAT这种大厂履历意味着什么?面试篇
8.15一面(60min)自我介绍,为什么投客户端python和java有什么区别java内存模型gc讲讲httphttps区别cookie,sessionhttps握手过程对称非对称加密算法?哪个效率高?tcp握手要三次,挥手要几次,为什么进程和线程,描述一下进程通信方式线程同步
Wesley13 Wesley13
3年前
java线程
1.进程和线程的区别是什么?进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫轻量级进程。2.创建线程有几种不同方式?你喜欢哪种?为什么?有三种方式可以用来创建线程:继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池实现Runnabl
Wesley13 Wesley13
3年前
java多线程面试题_线程并发面试题
1、什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。2、线程和进程有什么区别?线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不
lucien-ma lucien-ma
4年前
什么是线程?什么是进程?
Java多线程基础进程和线程的概念应用程序是静态的概念,进程和线程是动态概念,有创建就有销毁,存在也是暂时的,不是永久性的。进程与线程的区别在于进程在运行时拥有独立的内存空间(每个进程所占有的内存都是独立的)多个线程是共享内存空间的,但是每个线程的执行时相互独立的,同时线程必须依赖于进程才能执行,单独的线程是无法执行的,由进程来控制多个线程的执行。
Wesley13 Wesley13
3年前
Java并发多线程高频面试题
并发知识不管在学习、面试还是工作过程中都非常非常重要,看完本文,相信绝对能助你一臂之力。1、线程和进程有什么区别?线程是进程的子集,一个进程可以有很多线程。每个进程都有自己的内存空间,可执行代码和唯一进程标识符(PID)。每条线程并行执行不同的任务。不同的进程使用不同的内存空间(线程自己的堆栈),而所有
Stella981 Stella981
3年前
Linux 多线程编程
1.Linux“线程”进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux
Wesley13 Wesley13
3年前
Java 并发编程:进程、线程、并行与并发
一谈到Java并发编程,我们一般就会联想起进程、线程、并行、并发等等概念。那么这些概念都代表什么呢?进程与线程有什么关系?并发与并行又是什么关系呢?进程与线程进程是指程序的一次动态执行过程,通常我们说计算机中正在执行的程序就是进程,每个程序都会对应着一个进程。一个进程包含了从代码加载到执行完成的一个完整过程,它是操作系统资源分配最小单
Wesley13 Wesley13
3年前
2万字Java并发编程面试题整理(含答案,建议收藏)
Java并发编程1、在java中守护线程和本地线程区别?2、线程与进程的区别?3、什么是多线程中的上下文切换?4、死锁与活锁的区别,死锁与饥饿的区别?5、Java中用到的线程调度算法是什么?6、什么是线程组,为什么在Java中不推荐使用?7、为什么使用Executor框架?8、在Java
Wesley13 Wesley13
3年前
Java并发编程:进程、线程、并行与并发
一谈到Java并发编程,我们一般就会联想起进程、线程、并行、并发等等概念。那么这些概念都代表什么呢?进程与线程有什么关系?并发与并行又是什么关系呢?01 进程与线程进程是指程序的一次动态执行过程,通常我们说计算机中正在执行的程序就是进程,每个程序都会对应着一个进程。一个进程包含了从代码加载到执行完成的一个完整过程,它是操作系