线程与进程的区别

7 篇文章 0 订阅
6 篇文章 0 订阅

1.了解进程,线程
程序:例如xxx.py这是程序,是一个静态的
进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。(用自己的话说,单进程就是一个程序本身,多进程就是多个程序)
进程拓展:当一个程序在执行main()函数时,此时是主进程,一旦开始执行一个调用函数,就会创建一个子进程(重新创建一个一摸一样的程序),子进程可以初步理解:为复制了主进程的所有代码和内存资源以及摄像头,打印机,显示器,网络,硬盘等等很多东西,但是进程号肯定不一样,要不然无法区分主子进程,深入了解进程:子进程当然是复制的东西越少越好,比如一个程序的代码,很少发生变化,变化的内存中的数据,所以子进程如果不需要修改代码的情况下,就不需要复制主进程代码,直接共享主进程的代码,内存资源还是复制的,也就是能共享的话,就尽量共享,如果不能共享,那就重新复制一份供自己使用,这就用到操作系统中c语言里面的写时拷贝,"写"修改的意思,"写时拷贝"就是需要修改的时候再拷贝。
线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.(用自己的话说,线程就是一个程序里的函数,main函数是主线程,其它定义的函数,是子线程;当只有main()函数,里面没有调用其它函数时就是单线程(也就是主线程),当main()函数里调用其它函数时,就是多线程了(即:主线程和子线程)。)
线程拓展:当一个程序在执行main()函数时,此时是主线程,一旦开始执行一个调用函数,就会创建一个子线程(还是共用同一个程序)

2.功能
进程:能够完成多任务,比如 在一台电脑上能够同时运行多个QQ
线程:能够完成多任务,比如 一个QQ中的多个聊天窗口

3.区别
一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程(资源比进程少),使得多线程程序的并发性高。
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率
在这里插入图片描述
线程不能够独立执行,必须依存在进程中
可以将进程理解为工厂中的一条流水线,而其中的线程就是这个流水线上的工人
在这里插入图片描述
4.优缺点
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值