import gc import thread import time class Ouch: def __del__(self): pass def g(): while 1: n = gc.collect() print "collected", n time.sleep(0.1) def f(): while 1: t = () for i in range(300): t = [t, Ouch()] thread.start_new_thread(g, ()) f()