Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: And now something completely different: Multithreading

Author: Russell Reagan

Date: 00:39:27 12/01/03

Go up one level in this thread


On December 01, 2003 at 02:41:28, Tony Werten wrote:

>When my masterthread is spinning, waiting for results from it's workers threads,
>how do I keep it from burning CPU time ?
>
>The apifunction sleep() doesn't some threadsafe, suspending the thread and
>having it resumed by the worker seems overly complicated. ( Accept maybe if I
>can use a callback function )
>
>Any thoughts ?

What language are you using?

The Sleep() Win32 API call might be a dirty solution. IIRC, the Sleep() function
puts the calling thread to sleep for a specified number of milliseconds, so that
thread shouldn't run during that time. I think Sleep() is different from
sleep(). Also check out SleepEx(). It can do some extra things that might help
you out.

If you want to do it the "right" way, then you should probably use
WaitForSingleObject() or WaitForMultipleObjects(), both Win32 API functions. I
think these will only work if you use the Win32 threading stuff though. It's
been a while since I've used them, but I think those functions will wait on any
Windows handle (events, threads, files, etc.).

If you use a different third party threading library and it doesn't provide this
functionality, Sleep() might be a good solution.

You might have a look at these:

Process and Thread Functions (Sleep/SleepEx, among other interesting functions)
http://msdn.microsoft.com/library/en-us/dllproc/base/process_and_thread_functions.asp

Synchronization Functions (WaitFor*, among other interesting functions)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/waitforsingleobject.asp



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.