使用threading.Thread类,有三种创建线程的方法:
创建一个Thread类,传给它一个函数;
创建一个Thread类,传给它一个可调用的类对象;
从Thread派生出一个类,创建一个这个子类的实例。
# 方法1和方法2的创建方法类似 import threading def func(k): print(‘thread %s replies %s‘%(threading.currentThread().getName(), k**2)) if __name__ == ‘__main__‘: mythreads = [] for i in range(1,5): t = threading.Thread(target=func, args=(i,)) mythreads.append(t) print(‘start:‘) for t in mythreads: t.start() #所以线程创建完后一起start,而不要创建一个启用一个 for t in mythreads: t.join #等待所有线程运行完毕在继续执行主程序
# 方法3的创建方式 import threading class Myclass(threading.Thread): def run(self): print(‘i am thread: %s‘ %(self.getName())) if __name__ == ‘__main__‘: mythreads = [] for i in range(1,5): t = Myclass() mythreads.append(t) print(‘start:‘) for t in mythreads: t.start() for t in mythreads: t.join
加锁的操作这里不做叙述。
原文地址:http://ustchch.blog.51cto.com/12924303/1943134