c/c++开发分享可以在没有硬件支持的软件中实现测试和设置吗?

这是用软件编写的测试和设置:

boolean TestAndSet(boolean *target) { boolean rv = *target; *target = TRUE; return rv; } 

 do { while(TestAndSetLock(&lock)) ; // do nothing // critical section lock = FALSE; // remainder section } while(TRUE); 

我们可以在CPU中使用不支持硬件级别的测试和设置的机制吗? 如果是这样,primefaces性如何得到保证?

    您可以在没有TAS / CAS的机器上使用Lamport的“面包店”互斥算法来访问“primefaces”(受保护)值。

    如果你没有合理限制的’N’过程,它只会变得复杂。

    如果没有硬件支持,则无法按照您的建议在软件中实施测试和设置。

    这是因为上面的TestAndSet应该是一种用于确保互斥的机制,但它不是primefaces的。 然而,primefaces性只是互斥的另一个名称:必须通过确保两个进程不能同时执行其代码来保护TestAndSet的内部变量。

    因此,您通过这种方式定义了一种确保互斥的方法,这种方法本身需要一些机制来确保相互排斥。 这个技巧可以播放很多次,但没有某种硬件支持就没有任何真正的进步。

      以上就是c/c++开发分享可以在没有硬件支持的软件中实现测试和设置吗?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/545805.html

      发表评论

      电子邮件地址不会被公开。 必填项已用*标注