Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 比自旋锁更好的解决方案_Multithreading_Concurrency_Spinlock - Fatal编程技术网

Multithreading 比自旋锁更好的解决方案

Multithreading 比自旋锁更好的解决方案,multithreading,concurrency,spinlock,Multithreading,Concurrency,Spinlock,我目前正在复习考试,遇到了这个问题: 在什么情况下,自旋锁适合于 锁什么时候这是一个糟糕的实施选择?描述 更好的解决方案,并为其编写伪代码定义 我可以回答关于自旋锁的不适用性的问题,但我完全不知道什么是“更好的解决方案”以及如何在伪代码中实现它。如果有人能给我指出正确的方向,我将不胜感激。我将对“关键部分”、“互斥”、“信号量”、“I/O完成端口”等主题进行一些调查,并考虑发布等待线程的机制。您知道自旋锁“不合适”这一事实在某些情况下,意味着您必须知道还有其他类型的锁。你可以用你知道的任何其他类

我目前正在复习考试,遇到了这个问题:

在什么情况下,自旋锁适合于 锁什么时候这是一个糟糕的实施选择?描述 更好的解决方案,并为其编写伪代码定义


我可以回答关于自旋锁的不适用性的问题,但我完全不知道什么是“更好的解决方案”以及如何在伪代码中实现它。如果有人能给我指出正确的方向,我将不胜感激。

我将对“关键部分”、“互斥”、“信号量”、“I/O完成端口”等主题进行一些调查,并考虑发布等待线程的机制。

您知道自旋锁“不合适”这一事实在某些情况下,意味着您必须知道还有其他类型的锁。你可以用你知道的任何其他类型回答这个问题。只是有时候我会被我的修改弄得不知所措,有时候我会失去情节。这是个多么奇怪的问题啊?如何为内核锁编写伪代码,当内核锁阻塞某些内容时,会阻止代码的执行?是的,这很有用。我真的不知道我怎么一开始就没有想到信号量或互斥。我想是期末考试的压力吧!