from queue import Queue from threading import Thread from time import clock from math import sqrt n = 10000 results = [] q = Queue() def servant(): while True: v = q.get() t = clock() if v is None: break results.append(t - v) def master(): for i in range(n): q.put(clock()) q.put(None) t = Thread(target=servant) t.start() t0 = clock() master() t.join() t1 = clock() avg = sum(results)/n sq = [(i-avg)**2 for i in results] stddev = sqrt(sum(sq)/(n-1)) print("totaltime: %f, avg delay: %f, delay_stddev: %f"%(t1-t0, avg, stddev))