进程与线程详解

基本概念
进程:是执行中的一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。
线程:单个进程执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。
区别联系
1、引入线程可提高程序并发执行的程度,可进一步提高系统效率,减少程序并发执行时所付出的时空开销。线程是一种特殊进程,不能独立运行,需要进程所获得的资源。线程自己拥有一点资源(线程栈,线程号,堆栈),但它可以使用所属进程的资源。
2、一个进程至少包含一个主线程(线程数量大于等于1)。由于同一进程中的多个线程具有想用的地址空间,所以他们间的同步和通信也是易于实现。
3、同一进程或不同进程内的线程都可以并发执行。
4、进程是系统进行资源分配和调度的一个基本单位;线程是CPU调度和分派的基本单位。不管系统中是否有线程,进程都是拥有资源的独立单位。一个进程可创建一个或多个进程和线程;一个线程可创建一个或多个线程,但不可以创建进程。
5、如果系统只有用户态线程,则线程对操作系统是不可见的,操作系统只能调度进程;如果系统中有内核态线程,则操作系统可以按线程进行调度。
6、创建或撤销一个进程所需要的开销比创建或撤销一个线程所需要的开销大。
7、进程为重量级组件,线程为轻量级组件
多线程:在操作系统中能同时运行多个任务(程序)
多线程:在同一应用程序中有多个功能流同时执行

总结
1、进程是系统进行资源分配以及调度的基本单位,是系统中的并发执行单位。
线程是CPU和分派的基本单位。
2、一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中同一时刻执行多个任务。
3、线程是一种轻量级的进程,与进程相比,线程给操作系统带来侧创建、维护、和管理的负担要轻,以为这线程的代价或开销比较小。
3、线程没有地址空间,线程包含在进程的地址空间中。线程上下文值包含一个堆栈、一个寄存器、一个优先权,线程文本包含在他的进程文本片段中,进程拥有的所有资源都属于线程。所有的线程共享锦城的内存和资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的堆栈,寄存器的内容,栈段又叫运行时段,用来存放所有局部变量和临时变量。
4、父与子进程使用进程间通信机制,同一进程的线程通过读取和写入数据到进程变量来通信。
5、进程内的任何线程都被看作是同位体。且处于相同的级别。不管是哪个线程创建了哪一个线程,线程内的任何线程都可以销毁、挂起、回复和更改其他线程的优先权。线程也要对进程施加控制,进程中任何线程都可以通过销毁主线程来销毁进程,销毁主线进程将导致该进程的销毁,对主线程的修改可能影响所有的线程。
6、子进程不对任何其他子进程施加控制,进程的线程可以对统一进程的其他线程施加控制。子进程不能对父进程施加控制,进程中所有线程都可以对主线程施加控制。
相同:
进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可以更改自己的属性,都可与父进程共享资源、都不能直接访问其他无关金恒或线程的资源。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值