[Python-Dev] Another threading idea (original) (raw)
Guido van Rossum guido at python.org
Wed Mar 15 00:09:46 CET 2006
- Previous message: [Python-Dev] Another threading idea
- Next message: [Python-Dev] Another threading idea
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I think I was thinking of the following: create a semaphore set to zero; the main thread does N acquire operations; each of N workers releases it once after it's done. When the main thread proceeds it knows all workers are done. Doesn't that work? Also, I believe Tim once implemented a barrier lock but I can't find it right now.
--Guido
On 3/14/06, Raymond Hettinger <raymond.hettinger at verizon.net> wrote:
> Isn't this a job for threading.BoundedSpemaphore()?
I don't see how that would work. ISTM that we need an inverse of a BoundedSemaphore. If it understand it correctly, a BS blocks after some pre-set maximum number of acquires and is used for resources with limited capacity (i.e. a number of connections that can be served). With the TaskQueue, there is no pre-set number, the queue can grow to any size, and the join() method will block until the counter falls back to zero. IOW, a BS is about potentially blocking new requests and a TaskQueue is about blocking other work until outstanding requests are complete.
Raymond
-- --Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] Another threading idea
- Next message: [Python-Dev] Another threading idea
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]