阅读:1873回复:9
自旋锁和互斥的区别
我要在驱动中,保护一段数据的访问.要保证访问这个数据时,只有一线程在访问.(多CPU平台)
请问应该用自旋锁还是互斥. 我看一些书上介绍说,自旋锁是用于多CPU平台上保护一段数据的只有一个线程访问的. 那么,是不是说互斥,在多CPU平台上,并不能实现这样的功能呢? 还是二者是等价的..谢谢 谢谢..请各位指点一下. |
|
沙发#
发布于:2008-03-05 11:50
都可以,自旋锁是在获取不到资源的情况,会不停地重试,而锁在获取不到资源的情况下,会挂起当前线程。
|
|
板凳#
发布于:2008-03-06 16:47
谢谢.明白了..
|
|
地板#
发布于:2008-03-07 11:17
spinlock主要用于多cpu
当只有一个cpu只它只提当前的IRQL |
|
|
地下室#
发布于:2008-03-07 20:30
谢谢二位..谢谢...
|
|
5楼#
发布于:2008-04-03 15:31
spin lock is used for *cpu sync*, no relationship with thread since its context is arbitrary.
|
|
6楼#
发布于:2008-05-12 16:11
学习
|
|
7楼#
发布于:2008-05-19 15:23
如果线程都是在passive级别访问共享数据的话,用互斥就好了。做文件过滤一般用不到spinlock
|
|
8楼#
发布于:2008-05-20 08:27
寒,,, ,我就用了spinLock保护我的链表,,不知道大家用什么保护链表啊。。。
|
|
9楼#
发布于:2008-05-20 09:30
能达到目的,用什么都可以
|
|