多线程相关概念

同步方法:调用一旦开始,调用者就必须等到方法调用完成。

异步方法:更像是消息传递,你可以下发很多的消息,不会阻塞调用者。

并发:指系统只有一个cpu,就算是多线程或者多进程,操作系统也只是不断切换多个任务而已,造成并行的错觉

并行:真实的并行存在与多个cpu。

临界区:指一种公共资源,可以被多个线程使用, 如果当前临界区被占用,其他线程等待(当然后续有变动)

阻塞:指多线程之间的相互影响,当一个线程占用了临界区,其他线程必须等待它释放资源。

非阻塞:它强调没有一个线程可以妨碍其他线程,大家都可以顺利前行!

死锁:小王占了A资源,小李占了B资源, 这时候俩个人都不肯释放锁资源,同时还想获取对方的锁资源,这时候就会出现死锁

饥饿锁:代表某个线程或者多个线程因为种种原因久久不能获取锁,产生饥饿。比如:有些锁优先级太低,如果在不公平情况下,往往因为优先级高的抢占资源导致饥饿

活锁:相互谦让,好比俩人迎面走开,俩人一直相互让,导致一直碰面,产生活锁

并发级别:多线程之间的并发是必须受到控制的,根据控制并发的策略,可以分为阻塞,无饥饿,无障碍,无锁,无等待。阻塞,无论是同步锁还是重入锁,试图进入临界区都需要获得锁。无饥饿,指资源分配公平下,不管优先级必须排队。无障碍,大家都可以大摇大摆进入临界区。无锁(lock-free)原子类就是采用的无锁,并发下保证有一个线程能够有限步内完成离开,其他将无穷循环的尝试,冲突则停滞不前。无等待(wait-free)要求所有线程都在有限步内完成,对数据读可以不加控制,写数据时,先取得原始数据副本,接着修改副本,找合适机会回写数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值