import hashlib, threading, time class Hasher(threading.Thread): def __init__(self, hasher): threading.Thread.__init__(self) self.setDaemon(True) self.hasher = hasher self.timer = time.time() self.start() def run(self): md = self.hasher buf = b'a'*10241 while True: md.update(buf) self.timer = time.time() threads = [] md = hashlib.md5() for i in range(20): threads.append(Hasher(hashlib.md5())) while True: print(len([t for t in threads if abs(time.time() - t.timer) > 1])) time.sleep(0.5)