ChinaUnix.net
相关文章推荐:

mutex和semaphore

http://kb.vigal.net/semaphore-mutex-relatio/ Home About Wizard Ray « 在复杂逻辑中尽量使用短小的方 法 FCKEditor 在ASP.NET下的部署笔记 » semaphoremutex的关系 2009/07/13, 13:03 在多线程编程中,经常使用到如semaphoremutex等许多线程间同步用的工具,但是mutexsemaphore的区别一直让 人困惑在Pintos Project的实践中,逐渐摸索到一些其中的区别。以下的实现来...

by hdc1112_cu - Linux文档专区 - 2010-02-21 16:41:38 阅读(2613) 回复(0)

相关讨论

看linus在N久前曾经提到过如下场景(2.4的年代?), CPU1 -- down(sem);kfree();(或者sem是在栈上分配,而且down之后紧跟return) CPU2 -- up(sem); 他说这样会出现问题,因此提出了completion. 如果说多CPU上updown可能会并发执行,那为什么在单CPU上就不存在这个问题呢?一直没想明白 还有个问题,semaphore结构2.6.16内核中新的mutex结构是什么关系? 请各位指教,谢谢

by iterator - 内核源码 - 2008-05-21 10:11:30 阅读(2196) 回复(5)

学习中,看到用户线程对共享内存的获得释放,其中讲到mutex锁: 例:线索在修改缓冲区以前,首先获得这个缓冲区的mutex,然后把这个缓冲区的锁访问类型设为独占方式。 问题:mutex(门叉)本身就是实现互斥访问,应该说得到mutex以后,别人已经不可能再访问这个缓冲区了,为什么还要加锁。 在书中还有许多地方讲到这种例子。究竟mutex锁是什么关系?请老大们指教!!!

by unixcrazy - Informix - 2003-10-02 18:08:32 阅读(1118) 回复(0)

Difference between mutex and semaphore Source: http://koti.mbnet.fi/niclasw/mutexsemaphore.html 先看看网上著名的厕所理论的描述: mutex: Is a key to a toilet. One person can have the key - occupy the toilet - at the time. When finished, the person gives (frees) the key to the next person in the queue. Officially: "mutexes are typically used to serialise access to a section of re-entrant code that...

by jerrykinki - Linux文档专区 - 2009-02-19 17:06:21 阅读(872) 回复(0)

想了一下,没有办法呢

by 太平绅士 - C/C++ - 2015-03-19 23:15:09 阅读(7808) 回复(16)

本文转自http://group.ednchina.com/1036/18550.aspx spinlocksemaphore的差别应用这两天经常有同事在问我spinlocksemaphore的相关问题,什么时候该用spinlock?什么时候该用semaphore?什么时候该用spinlock_irq?什么时候该用spinlock_irqsave?的确,对于初涉内核开发的人员来说,spinlocksemaphore的应用是一个比较大的疑问。这里,我来谈谈我对这两个概念的想法吧。 Spinlock的实现机制可以描述如下:CPU首先将内存总...

by jerrykinki - Linux文档专区 - 2009-02-25 13:24:02 阅读(594) 回复(0)

看起来好象是不一样的,sys/sem.h里申明的是XSI的semaphore, 而semaphore.h里的函数我查了man文档里似乎是有关realtime的,是不是这样呢?请指教?

by jiangqihua - C/C++ - 2014-01-07 10:46:50 阅读(5448) 回复(2)

我正在编一个http proxy. 有些地方想不通. 主程序在每收到一个新的客户端的请求 都会建立一个线程去处理这个连接, 在处理连接的过程中,对于请求我用了select()设置了10秒的超时,当select返回值大于0时将建立一个线程处理这次请求,小于0时关闭连接.之所以新开一个线程是因为要实现pipelining. 这样就要求用mutex或是其他方式对client的socket进行同步,因为这些新开的线程在接受请求或是返回回复的使用socket的时候会有冲突. 我觉得好...

by pandaface - C/C++ - 2004-05-03 08:36:44 阅读(3028) 回复(9)

感觉completionlocked mutex差不多。在之前的版本中,因为updown没有用spin lock保护。所以semaphorecompletion在smp下存在区别。但是在2.6.27中,两者都使用了spin lock保护。那么现在他们还有区别吗?看了下2.6.27的实现,complete会唤醒所有的等待进程,而up只会唤醒一个等待进程。不知道这个是不是它们的区别?其他还有什么不同吗? 谢谢指点。

by xiegang112 - 内核源码 - 2009-05-31 12:32:37 阅读(4116) 回复(1)

socketsemaphore是不是线程安全的? socket是不是线程安全的? 一个进程接受远程socket连接,创建两个线程后 一个读一个写会不会混乱? 两个同时写会不会混乱? 两个同时读会不会混乱? IPC中的信号量semaphore是不是线程安全的? 能否用semaphore代替pthread_mutex_t、pthread_cond_t在多线程环境中实现临界区堵塞唤醒功能?

by BetonArmEE - C/C++ - 2006-02-16 12:15:05 阅读(5604) 回复(11)

在多线程APP中,一个结构比如 typedef struct { ... int end; ... } SNODE; end作为一个结束标识。 然后在thread A中循环读取判断,在thread B中对end 进行写修改。 那么在没有 任何机制保证的情况下,thread A可能不会读取到最新的值。 那么我现在有个问题,是不是直接在SNODE内部修饰 volatile int end; 就可以了? 还是修饰SNODE 结构? ( 我现在采用的是mutex来保护end读写的。) 上面是一个写,一个读的。 如果两...

by snofe - C/C++ - 2008-03-11 11:38:20 阅读(1845) 回复(5)