Is there any way to find that
- how many threads are waiting on semaphore?
- how many threads have currently occupied semaphore?
- if i use threadpool thread to wait on semaphore, how to let main thread wait until threadpool thread is finished.
Thanks.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
This is forbidden knowledge in thread synchronization. Because it is utterly impossible to ever make this accurate. It represents an unsolvable race condition. When you use Habjan’s approach, you’ll conclude that there are, say, two threads waiting. A microsecond later another thread calls WaitOne() and there are three. But you’ll make decisions based on that stale value.
Race conditions are nothing to mess with, they are incredibly hard to debug. They have a habit of making your code fail only once a week. As soon as you add instrumenting code to try to diagnose the reason your code fails, they’ll stop occurring because that added code changed the timing.
Never do this.