关于linux的进程和线程的区别:

1、线程和进程的控制原语:

         在以上的图片当中详细标明了线程和进程的创建、回收、但区别在于,线程可以设置自己的线程状态,如:在pthread_create()函数当中,可以在attr中设置分离状态,从中可以达到自己回收资源的目的。

2、进程和线程的各自共享的区域:

        进程:具有自己的独立地址空间,刚fork后。 data段、text段、堆、栈、环境变量、全局变量、宿主目录位置、进程工作目录位置、信号处理方式。

        线程:属于寄存器和栈的集合,除了这两点,几乎与主线程一样,即没有独立地址的空间,一个进程当中能够有多个线程。

        进程是操作系统中最小的资源分配单位,而线程是最小的执行单位。

3、 线程与进程的区别:
1.进程是系统进行资源分配(内存,文件,网络)的最小单位,线程是CPU(CPU指向的最小单位是指令)调度执行的最小单位;
2.线程在进程的内部,所有的线程共享地址空间,进程之间都是相互独立的地址空间
2.进程是拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈
3.线程统一具有就绪,阻塞和执行三种基本状态,同样具有状态之间的转换关系(把着部分的功能归为线程)
3.进程通信 --管道、信号量、共享内存、消息队列 线程通信 --全局、堆区
4 多线程的执行是不安全的,多进程的执行是相对比较安全的
4.线程相对能减少并发执行的时间和空间的开销:
1.线程的创建时间比进程短;(进程在创建时还需创建其他的管理信息,如内存怎么管理,打开的文件怎么管理,而线程的创建直接从用所属进程已经管理好的资源)
2.线程的终止时间比进程短;
3、同一进程内的线程切换时间比进程短;(内存管理,线程具有同一个内存空间,属于同一个进程的页表的随从线程拥有同一个页表,不需要切换页表,而进程的切换需要切换页表,涉及到访问的地址空间不同,里面的cache,tob信息等硬件信息都会无效,需重新加载)
4.由于同一进程的各线程间共享内存和文件资源,可直接进行不通过内核的通信;
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值