2010-07-13 59 views
0

1字节共享资源上是否需要互斥量?如果不是,那为什么不呢?考虑我正在使用普通桌面PC Pentium IV,32位。如果使用core 2 duo,条件会改变吗?1字节共享资源上的互斥量

回答

2

这取决于你将如何处理它,但是如果你有多个编写器,用C或C++实现,那么你需要一个互斥体 - 资源的大小不是问题。

+0

是的,有多个写入和读取。 – Alam 2010-07-13 10:55:51

+0

只是为了澄清我的疑惑:如果CPU是单处理器,那么在读取单字节(或32位机器上的字)时,如果发生中断,会在读/写完整字或锥切换后立即发生上下文切换?总之读取/写入完整的单词需要多少CPU周期。 – Alam 2010-07-14 03:47:25

+0

@alam无论它需要多少个时钟周期,更新一个值都无关紧要,编译器可以发出基本上可以读取,更改和写入(即至少三条机器指令)的代码,并且不需要互斥锁切换到另一个线程可以发生在他们中的任何一个之后.. – 2010-07-14 09:21:10

0

CPU并不重要,因为任务调度程序可以随时中断线程。大小无关紧要。如果它是共享的,那么你需要一些锁定方法。