spinlock

    0热度

    1回答

    如果我在中断上下文中使用信号量和互斥锁,会发生什么? 通常信号量用于同步机制。如果我在中断环境中使用这个,会发生什么? 我正在研究一个关于gpio引脚的项目,当中断发生时,我必须在ISR中发送一个信号。我正在使用自旋锁。 如果我在ISR中使用信号量和mutext会发生什么?

    1热度

    1回答

    我使用boost::shared_mutex作为Writer-Readers模型中的同步对象。然而,与没有使用的锁相比,速度相当慢(在我的测试中:没有任何读卡器,要写500,000个值,如果不使用锁,需要100毫秒,如果使用boost::shared_mutex,则需要约500毫秒)。这就是为什么我决定考虑类似自旋锁的原因。我想制作一个便携式自旋锁(Windows + Linux)。 是否有任何可

    -1热度

    1回答

    在一个4处理器系统中,三个处理器中的哪一个(所有三个处理器正在旋转以获取自旋锁)将获取第四个处理器发布的自旋锁?

    0热度

    1回答

    对于简单任务,自旋锁应具有比互斥锁更好的性能。然而,在这种简单的测试(8个线程递增计数器)区,结果表明是不同的: #include <iostream> #include <thread> #include <mutex> #include <atomic> #include <vector> using namespace std; class SpinLock { priva

    6热度

    2回答

    请解释为什么忙碌等待一般皱起了眉头,而纺纱往往被视为好。据我所知,他们都无限循环,直到满足一些条件。

    1热度

    1回答

    我在ISO C90中编写代码,禁止混合声明和代码。 所以我有这样的事情: int function(int something) { int foo, ret; int bar = function_to_get_bar(); some_typedef_t foobar = get_this_guy(something); spin_lock_irqsa

    0热度

    1回答

    我想一个属性添加到PostgreSQL的源代码中的缓冲器描述,但是当我尝试初始化它,我得到一个错误:206 :在freelist.c检测卡自旋锁(0x7fc1cddd0cd0):PANIC该结构在buf_internals.h描述为: typedef struct sbufdesc { BufferTag tag; /* ID of page contained in buffer */

    1热度

    1回答

    自旋锁(忙等待锁)比互斥锁睡眠更有效的非常短的 关键部分。假设系统的上下文切换时间( 保存当前进程并加载下一个时间所需的时间)为时间T.关键部分 多长时间才能更有效地使用互斥锁睡眠锁,而不是自旋锁?

    0热度

    3回答

    我有一些代码,是这样的: std::queue<int> a_queue; bool exit = false; void MainThreadFunc(int somedata) { a_queue.push(somedata); } void WorkerThreadFunc() { while (true) { if (exit)

    0热度

    1回答

    如果我试图锁定无效的pthread类型自旋锁会发生什么?该场景可能发生在使用乐观同步的链表上,在每个节点上利用自旋锁,在找到所需节点的阶段和实际锁定它们之间。当我找到它们时,我对它们有一个有效的参考,但是如果它们是例如在我能够锁定它们之前删除?结果会试图锁定一个NULL指针 - 可以导致程序终止,还是只会使pthread_spin_lock()返回一个特定的值?