自学日记--多线程

1.啥是多进程

        多进程是通过我们写特殊的代码,把cpu的多个核心都能利用起来,这样的代码成为“并发编程”。多进程编程就是一种典型的并发编程。

        但是多进程有一个很大的问题----->>进程太重了,在进程创建销毁进程的时间和空间开销较大。一旦需求场景,需要频繁的创建和销毁进程,开销就过于庞大了。典型应用有服务器开发,针对每个发送请求的客户端,服务端都要创建一个单独的进程,由这个进程给客户端提供服务。

        进程是系统“资源分配”的基本单位。

2.线程(Thread)

        为了解决多进程带来的开销过大问题,就有了“线程”这一发明。“线程”可以理解为更加轻量级的进程。也能解决并发编程的问题,但是创建/销毁的开销,比进程要低。因此多线程编程变成了当下主流的并发编程方式。线程是系统“调度执行”的基本单位。

        一个线程只能属于一个进程,而一个进程可以有多个线程。如果有多个线程在一个进程中,每个线程,都会有自己的状态,优先级,上下文,记账信息,每个都会各自独立的在cpu上调度执行。

3.进程包含线程

        一个可执行程序,运行的时候,操作系统就会创建进程,然后给这个进程分配各种资源(cpu,内存,网络...);同时也会在这个进程中创建一个或者多个线程,这些线程再去cpu上调度执行。

        进程包含一个线程或多个线程。在进程创建后会自动创建一个至少一个线程。这些在同一个进程中的线程是共用一份资源的。

        比如说喝水,需要喝完指定容量的水,水是由杯子盛放的。

        多进程的处理方式:将水分为多份,然后由多个人一起喝。但是增加的需要的水杯数量,多出来的水杯这就相当于是进程的创建与销毁花费的资源。

        图示:

        这些多出来的水杯就是增加的资源花费。但是多线程是一个水杯许多人一起喝。多个人就相当于多个线程。

图示:

这样就直观的看出了线程花费更小并且具备并发的功能。

       

        

        

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值