接口中固态的竞争条件

Posted ----max

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口中固态的竞争条件相关的知识,希望对你有一定的参考价值。

接口中固有竞争基本上因为锁定的粒度过小而引起,保护没有覆盖期望的操作的整体。

互斥元的问题也可以由锁定的粒度过大导致并发优势全无,因为线程一次只能过一个,即使它们访问的不是同一个数据。

linux的内核第一个版本就是使用了单个全局内核锁,虽然这样也能工作,但是可能导致双核处理器没有两个单个处理器效率更差。因为内核竞争太过于严重。

linux往后版本已经转移到一个根细粒化,在更细粒化的系统使用的化4个内核处理器是4个单处理器的4倍,因为竞争较少。

什么叫死锁?

1、当线程1和线程2都需要互斥元来执行一些操作。

2、同时每个线程都在互相等待。

3、线程无法进行。

如何产生死锁?

 例如,同一个类的两个实例之间的数据交互操作。为什么这会导致线程死锁?因为复制构造函数为了保证数据正确的交互,不会因并发导致的数据发生变化,两个实例都需要锁定。

而在相同的两个实例之间交互数据,你将产生死锁。

但是在C++的标准库种有lock函数,它可以同时锁定两个或多个的互斥元。

但是lock在申请两个线程互斥元的情况其中互斥元一申请成功,但是二引发了异常,这时候lock会释放前一个互斥元,这是就没用了。

 

以上是关于接口中固态的竞争条件的主要内容,如果未能解决你的问题,请参考以下文章

固态硬盘SATA

联想isk15笔记本怎么装固态硬盘

外接固态硬盘安装教程 关于外接固态硬盘安装教

联想拯救者700-15isk固态接口是啥啊

Lenovo 拯救者15ISK加装M.2的固态硬盘尺寸应该是多大的?

联想拯救者15-isk加啥固态