Re: Thread Checking the Queue data in an infinite loop
- From: "Michael K. O'Neill" <mikeathon2000@xxxxxxxxxxxxxxxxxx>
- Date: Fri, 11 Jan 2008 13:53:33 -0800
I disagree with Joe (above), and think that your proposal (using an event to
signal a thread that's WaitForSingleObject on the event) is just fine.
"prams" <pramodjoisb@xxxxxxxxx> wrote in message
news:2789ced5-ed23-48a8-822d-d85babd1aded@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hello,
I have a Thread which runs in a while(1) infinite loop checking for
any data in the Queue(normal STL::Queue) and if any data is there, it
retrieves and does some functionality with it. Now since it is an
infinite loop, continousy checking for data, CPU Utilization is almost
95-100% for my process. To Avoid that, I have tempororily put
Sleep(1). But I know this is not a good solution.
I want to replace it with this Solution. Please let me know if this is
correct.
1) I will create a Synchronization Object i.e an Event Object which
is an Autoreset Event Object.
2) The threads which write the data to the Queue (There are 2 threads
writing data to the queue simoultaneously..Queue writing is
synchronized with a mutex) will set the Event Object (Set the state to
signalled)
3) The Thread which reads the Queue data will do a WaitForSingleObject
waiting for the Event Object to be signalled. So it will be in a idle
state (waiting) if there is no data in the queue.
So I can avoid CPU Utilization(100%) problem.
Please let me know whether my solution is proper or should I have to
use seperate Event Objects.?
Rgds/;Pramod
.
- Follow-Ups:
- Re: Thread Checking the Queue data in an infinite loop
- From: Doug Harrison [MVP]
- Re: Thread Checking the Queue data in an infinite loop
- References:
- Prev by Date: Re: CListCtrl Changing the row height
- Next by Date: Re: Thread Checking the Queue data in an infinite loop
- Previous by thread: Re: Thread Checking the Queue data in an infinite loop
- Next by thread: Re: Thread Checking the Queue data in an infinite loop
- Index(es):
Relevant Pages
|