进程与线程

1.并发编程

        将CPU的多个核心都利用起来的编程方式称为并发编程。多进程编程和多线程编程,都属于并发编程。

        多进程编程,每次创建和销毁进程都需要申请和释放资源,包括内存资源和硬盘资源,当进程创建和销毁的比较频繁时,时间和空间的开销都比较大,效率不够高。为了解决进程开销比较大的问题,产生了多线程编程。

2.进程与线程

        在操作系统中,进程是通过进程控制块PCB(Process Control Block)进行描述,通过链表的方式将多个PCB组织起来,形成一个进程。线程也是通过PCB进行描述,但线程只有一个PCB。因此一个进程可以包含多个线程。

        线程是系统调度执行的基本单位,每个线程都可以独立到CPU上执行。进程是系统资源分配的基本单位,进程创建时,系统会分配资源(内存,硬盘等),同时也会创建一个或者多个线程(至少创建一个),共用一份资源。

        一旦进程创建,再创建第二个第三个线程时,就不需要额外申请资源,因此省去了分配资源的过程,线程销毁时,也省去了释放资源的过程。因此线程比进程更轻量。

3.总结(进程与线程的区别)

        a.进程包含线程:一个进程可以有一个线程,也可以有多个线程,但不能没有线程;

        b.进程是系统分配资源的基本单位,线程是系统调度执行的基本单位;

        c.同一个进程的多个线程之间,公用一份资源(内存,硬盘等),编程时,多个线程共用一份变量;

        d.线程是并发编程的主流方式,可以充分利用CPU的多个核心,当利用了CPU的全部核心后,再增加线程也无法再提高效率;

        e.多个线程之间可能会互相影响,一个线程抛出异常之后,必须要处理,否则会影响其它线程;

        f.多个进程之间具有隔离性,一个进程崩溃了,不会影响另外的进程;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值