线程基础(持续更新)

基础概念

只要接触线程,就不可避免的说到线程与进程的区别,其实两个根本就不同

什么是进程

进程是指运行中的程序。比如钉钉,微信,抖音,王者等

什么是线程

线程是CPU调度的基本单位,每个线程执行的都是某一个进程的代码的某个片段

所谓进程就是线程的容器,需要线程利用进程中的一些资源,处理一个代码、指令。最终实现进程所预期的结果

进程和线程的区别
  • 根本不同:进程是操作系统分配的资源,而线程是CPU调度的基本单位
  • 资源方面:同一个进程下的线程共享进程的一些资源。但是线程同时拥有自身的独立存储空间。进程之间的资源通常是独立的。
  • 数量不同:进程一般指的就是一个进程。而线程是依附于某个进程的,而且一个进程中至少会有一个线程
  • 开销不同:毕竟进程和线程不是一个重量级别的。包括创建、终止、通讯以及切换,线程都比进程要方便很多。
多线程简介
概念

多线程:单个进程中同时运行多个线程

目的

多线程是为了提供CPU的利用率

例如一些网络IO或者磁盘IO需要等待,这时CPU处于空闲状态,就可以让CPU去调度其他线程

局限
  • 如果线程数量特别多,CPU在切换线程上下文时,会额外造成很大的消耗
  • 安全问题:主要就是因为并发问题造成的数据不一致或者死锁等问题
串行、并行以及并发

串行:就是排队一个个的做,一个做完,后一个才能开始做

并行:并行就是同一时间同时处理

并发:CPU在极短时间内,反复切换执行不同的线程,看着是并行,其实只是CPU高速的切换

并行囊括并发:并行是多CPU,并发是单CPU

同步、异步、阻塞和非阻塞
同步和异步

执行某个功能后,被调用者是否会主动反馈

同步是不会主动反馈的,而异步则会主动反馈

阻塞和非阻塞

执行某个功能后,调用者是否需要一直等待结果的反馈

阻塞是等待,那不需要等待的就是非阻塞

小伙伴们要用心理解下者两个概念的侧重点哦。ok,咱们接下来再举几个例子来理解下这两个概念

  • 同步阻塞:比如用锅烧水,水开以后,过不回主动主动通知你,。那,ok。烧水开始后,咱们就一直等待水开吧(效率太低了)
  • 同步非阻塞:那咱们还是用锅烧水,虽然水不会主动通知咱们,但是,从开始烧水,到水烧开,中间是需要一段时间的,那咱们可以在这段时间内,去做些其他的事情,比如,开一把王者~但是,咱们也不知道什么时候会烧开水,所以需要是不是的来看看(效率有所提高)
  • 异步阻塞:过了一段时间,这老是用锅烧水,太麻烦了,所以家里买了个烧水壶,这次,咱们同壶来烧水。水烧开后,壶是可以主动通知咱们水烧开了的,但是毕竟是新壶,咱们要试下是不是有问题,万一水壶是坏的呢,那咱们第一次烧水呢,就一直等到水壶把水烧开(很少有业务场景,需要使用这种情况)
  • 异步非阻塞:经过第一次的测试,是个好水壶,水烧开后,真的会通知咱们哎,那咱们再次用水壶烧水的时候,就去办其他事情就行了(效率最高)

线程的创建

大家去看我写的另一篇博客

线程的创建(持续更新中)-CSDN博客

线程的使用

线程的状态

线程的状态-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值