进程与线程

来源:互联网 发布:stc单片机iap远程升级 编辑:程序博客网 时间:2024/04/30 01:12

进程和线程

定义

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源。是系统进行资源分配和调度的一个独立单位。
进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程,从而实现程序的并发执行。

区别

进程和线程的主要区别在于:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源,比如共享一个对象或者共享已经打开的一个文件。

1.一个程序至少有一个进程,一个进程至少有一个线程

2.进程类似一个容器,是程序的一次执行。线程是容器中的工作单位。CPU的基本调度单位

进程线程在linux下的区别和表现形式

在多进程情况下,每个进程都有自己的独立空间,而多线程情况下,同一进程内的线程共享进程的空间地址。因此,创建一个新的进程时就要耗费时间来为其分配系统资源,而创建一个新的线程花费的时间要少的多
在系统调度方面,由于进程地址空间独立而线程共享地址空间,线程间的切换速度要远远快于进程间的切换
在通信机制方面,进程间数据相互独立,彼此间通信要以专门的通信方式进行,通信时必须经过操作系统,而线程是数据共享的。

并发问题

多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题。

线程并发类似于浏览器内开多个窗口

进程并发就是同时用QQ浏览器和chrome浏览器

0 0