我有一個可以並行下載多個文件的下載器函數。 我使用multiprocessing.Pool.map_async
爲了下載同一文件的不同塊。 我想顯示下載的狀態欄。爲此,我需要知道已經下載的總字節數(total_bytes_dl
)。在進程之間共享變量
pool = multiprocessing.Pool(processes)
mapObj = pool.map_async(f, args)
while not mapObj.ready():
status = r"%.2f MB/%.2f MB" % (total_bytes_dl/1024.0/1024.0, filesize/1024.0/1024.0,)
status = status + chr(8)*(len(status)+1)
print status,
time.sleep(0.5)
有沒有一種方法來設置,將所有這些過程和主要過程之間共享的變量,所以每一個過程可以追加剛剛下載的字節的數量?
你不能映射ctypes共享對象:'RuntimeError:同步對象只能通過繼承在進程間共享' – iTayb 2012-03-24 23:41:24