高并发基础
Posted xiayuer0114
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发基础相关的知识,希望对你有一定的参考价值。
1,线程
1,同步和异步
2,临界区
用来表示一种公共资源或者说是共享数据,可以被多个线程使用。但是每一次,只能有一个线程使用,其余的线程要等待临界区资源释放。
3,阻塞和非阻塞:
阻塞:一个线程占用临界区,其余线程不能进入临界区的时候叫做阻塞。
非阻塞:允许多个线程进入临界区。
4,死锁,活锁,饥饿
死锁:多个线程都不能再执行。 静态死锁。
活锁:举例是一个资源中有资源A和资源B,两个线程一个拿到资源A,一个拿到资源B.因为都无法工作,两个资源会同时释放,看到A和B都可以拿到,然后同时再去拿资源,又会发生一个线程得到一部分资源的情况,然后无法运行。这种情况叫做活锁,动态活锁,
饥饿:有可能因优先级比较低,而使得分配不到资源的情况叫做饥饿。
2,并发级别
阻塞调度:一个线程占用临界区,其余线程不能进入临界区的时候叫做阻塞。
非障碍调度:多个线程可以同时进入临界区,宽进严出。无竞争时,有限步内完成操作。有竞争时,回滚数据。
无锁:非障碍的情况下,每一次竞争,保证一个线程可以胜出。
无等待:前提是无锁,然后再要求在有限步骤内完成。
3.阿姆达尔定律,古斯塔夫森定律(待扩展)
阿姆达尔定律:
加速比:优化前的时间/优化后的时间
以上是关于高并发基础的主要内容,如果未能解决你的问题,请参考以下文章