相关疑难解决方法(0)

在pthreads中实现FIFO互斥

我正在尝试实现支持并发插入的二叉树(甚至可能在节点之间发生),但无需为每个节点分配全局锁或单独的互斥锁或互斥锁.相反,分配的此类锁的数量应该是使用树的线程数量级.

因此,我最终遇到了一种锁定护航问题.更简单地解释一下,当两个或多个线程执行以下操作时,可能会发生这种情况:

1 for(;;) {
2   lock(mutex)
3   do_stuff
4   unlock(mutex)
5 }

也就是说,如果线程#1在一个"cpu突发"中执行指令4-> 5-> 1-> 2,那么线程#2将从执行中匮乏.

另一方面,如果pthreads中存在用于互斥锁的FIFO类型锁定选项,则可以避免这样的问题.那么,有没有办法在pthreads中实现FIFO类型的互斥锁?可以改变线程优先级吗?

c mutex pthreads

12
推荐指数
2
解决办法
2万
查看次数

为什么可以存储的最小值是字节(8位)而不是位(1位)?

为什么可以在内存中存储Byte(8bit)而不是Bit(1bit)的最小值?即使布尔值也存储为字节.我们是否会将最小的数字压缩到32或64位,就像CPU上的寄存器一样?

memory cpu byte bits

3
推荐指数
1
解决办法
695
查看次数

标签 统计

bits ×1

byte ×1

c ×1

cpu ×1

memory ×1

mutex ×1

pthreads ×1