8.python多线程
1.基本的多线程
#!/usr/bin/env python # -*- coding:utf-8 -*- import threading def fooa(a): print a*2 def foob(b): print b*3 def fooc(c): print c*4 if __name__ == '__main__': threads = [] ta = threading.Thread(target=fooa, args=(2,)) tb = threading.Thread(target=foob, args=(2,)) tc = threading.Thread(target=fooc, args=(2,)) threads.append(ta) threads.append(tb) threads.append(tc) for t in threads: t.setDaemon(True) t.start() t.join()
2.可以获取子线程数据的多线程
#!/usr/bin/env python # -*- coding:utf-8 -*- import threading class MyThread(threading.Thread): def __init__(self, func, args=()): super(MyThread, self).__init__() self.func = func self.args = args def run(self): self.result = apply(self.func, self.args)) def get_result(self): try: return self.result # 如果子线程不使用join方法,此处可能会报没有self.result的错误 except Exception: return None def fooa(a): return a*2 def foob(b): return b*3 def fooc(c,d): return c*d if __name__ == '__main__': threads = [] ta = MyThread(fooa, args=(2)) tb = MyThread(foob, args=(2)) tc = MyThread(fooc, args=(2,4)) threads.append(ta) threads.append(tb) threads.append(tc) for t in threads: t.setDaemon(True) t.start() t.join() print ta.get_result() print tb.get_result() print tc.get_result()
    http://www.cnblogs.com/makexu/

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号