由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - mutex一问
相关主题
关于多线程锁:锁代码还是锁资源?VC++线程问题
Windows XP与Multithreading Programmingc++posix多线程问题请教
Pthread support on Windows XP[合集] 请推荐几本Multi-threading的编程书籍
请教如何通过FILE指针删除文件?mutex和semaphore的差别到底是什么?
c++问题谁能推荐一个read-writer lock的C++实现? (转载)
问个线程同步的问题请问static variable init的问题?
waiting for N condition variables in linuxlooking for c++ programmers
编程题又一道Help on a multithread question
相关话题的讨论汇总
话题: mutex话题: 线程话题: openmutex话题: 销毁
进入Programming版参与讨论
1 (共1页)
c*****z
发帖数: 182
1
刚看了书上说win32里的mutex用了reference counting,如果没有线程引用它的话就自
动销毁。很困惑:假设线程A调用createmutex生成了个mutex,然后该线程没用它就退
出了。线程B想通过openmutex打开A产生的mutex,那如果A先退出了,此时是不是mutex
就被销毁了,B打不开了那?
x****u
发帖数: 44466
2
你的理解有问题,kernel对象哪有能自动销毁的。你看的什么书?

mutex

【在 c*****z 的大作中提到】
: 刚看了书上说win32里的mutex用了reference counting,如果没有线程引用它的话就自
: 动销毁。很困惑:假设线程A调用createmutex生成了个mutex,然后该线程没用它就退
: 出了。线程B想通过openmutex打开A产生的mutex,那如果A先退出了,此时是不是mutex
: 就被销毁了,B打不开了那?

c*****z
发帖数: 182
3
那如果线程A生成了一个mutex,然后线程结束了,之后也再没线程用这个mutex,那它
什么时候被销毁那

【在 x****u 的大作中提到】
: 你的理解有问题,kernel对象哪有能自动销毁的。你看的什么书?
:
: mutex

c*****z
发帖数: 182
4
就是最新的那本阿,modern multithreading implmenting, testing and debugging

【在 x****u 的大作中提到】
: 你的理解有问题,kernel对象哪有能自动销毁的。你看的什么书?
:
: mutex

x****u
发帖数: 44466
5
一直活到进程结束为止。

【在 c*****z 的大作中提到】
: 那如果线程A生成了一个mutex,然后线程结束了,之后也再没线程用这个mutex,那它
: 什么时候被销毁那

x****u
发帖数: 44466
6
哦,原文呢?

【在 c*****z 的大作中提到】
: 就是最新的那本阿,modern multithreading implmenting, testing and debugging
p***o
发帖数: 1252
7
这种Win32的东西,找本Windows高级编程指南或者Windows核心编程看看就明白了。
新书也就抄抄老书,还不一定有老书写的清楚。

【在 c*****z 的大作中提到】
: 就是最新的那本阿,modern multithreading implmenting, testing and debugging
c*****z
发帖数: 182
8
我好像说错了,A和B都是进程如何那,mutex不是可以跨进程的吗,是如果A进程创了,
B还没来得及调用,A进程就结束了,B进程就没法open了吧

【在 x****u 的大作中提到】
: 一直活到进程结束为止。
b******n
发帖数: 592
9
kernel level mutex has to be removed explicitly. is that what you talking
about?

【在 c*****z 的大作中提到】
: 我好像说错了,A和B都是进程如何那,mutex不是可以跨进程的吗,是如果A进程创了,
: B还没来得及调用,A进程就结束了,B进程就没法open了吧

x****u
发帖数: 44466
10
确实,这么多年win api也没出过什么新东西了。user32部分的实现在xp下和vista下改
动倒是不小,函数还在,但是效果有区别。

【在 p***o 的大作中提到】
: 这种Win32的东西,找本Windows高级编程指南或者Windows核心编程看看就明白了。
: 新书也就抄抄老书,还不一定有老书写的清楚。

x****u
发帖数: 44466
11
对,这个是内核对象的引用计数了。这时候这个对象引用数为0,就被自动释放了。建
议用process exploer看看,印象中里面能看到句柄数和名称的。

【在 c*****z 的大作中提到】
: 我好像说错了,A和B都是进程如何那,mutex不是可以跨进程的吗,是如果A进程创了,
: B还没来得及调用,A进程就结束了,B进程就没法open了吧

x****u
发帖数: 44466
12
他说的应该是用户态的锁。

【在 b******n 的大作中提到】
: kernel level mutex has to be removed explicitly. is that what you talking
: about?

p***o
发帖数: 1252
13
你的需求是啥?没法open自然能检测出来:
OpenMutex
Return Value
...
If a named mutex does not exist, the function fails and GetLastError returns
ERROR_FILE_NOT_FOUND.
还有这一段:
If your multi-threaded application must repeatedly create, open, and close
a named mutex object, a race condition can occur. In this situation, it is b
etter to use CreateMutex instead of OpenMutex, because CreateMutex opens a m
utex if it exists and creates it if it does not.

【在 c*****z 的大作中提到】
: 我好像说错了,A和B都是进程如何那,mutex不是可以跨进程的吗,是如果A进程创了,
: B还没来得及调用,A进程就结束了,B进程就没法open了吧

1 (共1页)
进入Programming版参与讨论
相关主题
Help on a multithread questionc++问题
想通过阅读范例代码学习multithreading, 哪些Java库大规模用了线程?问个线程同步的问题
Multi-thread可以mutex锁资源,Multi-process怎么锁资源?waiting for N condition variables in linux
面试问题一问 (转载)编程题又一道
关于多线程锁:锁代码还是锁资源?VC++线程问题
Windows XP与Multithreading Programmingc++posix多线程问题请教
Pthread support on Windows XP[合集] 请推荐几本Multi-threading的编程书籍
请教如何通过FILE指针删除文件?mutex和semaphore的差别到底是什么?
相关话题的讨论汇总
话题: mutex话题: 线程话题: openmutex话题: 销毁