以多线程的方式向标准输出打印日志
#!/usr/bin/pythonimport timeimport threadingclass PrintThread(threading.Thread): def __init__(self,threadid,count,mutex): threading.Thread.__init__(self) self.threadid=threadid self.count=count self.mutex=mutex def run(self): with self.mutex: for item in range(self.count): time.sleep(0.05) print 'threadid is {0} this is the count {1}'.format(self.threadid,item)class PrintThread2(threading.Thread): def __init__(self,threadid,count,mutex): threading.Thread.__init__(self) self.threadid=threadid self.count=count self.mutex=mutex def run(self): for item in range(self.count): with self.mutex: time.sleep(0.1) print 'thread id is {0} this is the count {1}'.format(self.threadid,item)if __name__=="__main__": threads=[] stdoutLock=threading.Lock() for item in range(5): pt=PrintThread2(item,100,stdoutLock) threads.append(pt) pt.start() for item in threads: item.join() print 'this end ...'