M
macker
Hi, hope this is the right group for this:
I miss two basic (IMO) features in parallel processing:
1. make `threading.Thread.start()` return `self`
I'd like to be able to `workers = [Thread(params).start() for params in whatever]`. Right now, it's 5 ugly, menial lines:
workers = []
for params in whatever:
thread = threading.Thread(params)
thread.start()
workers.append(thread)
2. make multiprocessing pools (incl. ThreadPool) limit the size of their internal queues
As it is now, the queue will greedily consume its entire input, and if the input is large and the pool workers are slow in consuming it, this blows upRAM. I'd like to be able to `pool = Pool(4, max_qsize=1000)`. Same with the output queue (finished tasks).
Or does anyone know of a way to achieve this?
I miss two basic (IMO) features in parallel processing:
1. make `threading.Thread.start()` return `self`
I'd like to be able to `workers = [Thread(params).start() for params in whatever]`. Right now, it's 5 ugly, menial lines:
workers = []
for params in whatever:
thread = threading.Thread(params)
thread.start()
workers.append(thread)
2. make multiprocessing pools (incl. ThreadPool) limit the size of their internal queues
As it is now, the queue will greedily consume its entire input, and if the input is large and the pool workers are slow in consuming it, this blows upRAM. I'd like to be able to `pool = Pool(4, max_qsize=1000)`. Same with the output queue (finished tasks).
Or does anyone know of a way to achieve this?