#!/usr/bin/python import sys import time import resource import multiprocessing.pool # import threading import numpy as np def monitor(args): IMGS = [] timeout = args[0] timeout = time.time() + timeout while time.time() < timeout: mem = np.arange(640 * 480) IMGS.append(mem) time.sleep(0.1) IMGS[:] = [] def repeat(n): while n > 0: print('iter %d, %d' % ( n, resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)) sys.stdout.flush() args = [(10,)] pool = multiprocessing.pool.ThreadPool(processes=len(args)) pool.map(monitor, args, chunksize=1) # worker = threading.Thread(target=monitor, args=(10,)) # worker.start() # worker.join() n -= 1 time.sleep(0.1) def main(): repeat(30) if __name__ == '__main__': main()