使用threading.Thread类,有三种创建线程的方法:

  1. 创建一个Thread类,传给它一个函数;

  2. 创建一个Thread类,传给它一个可调用的类对象;

  3. 从Thread派生出一个类,创建一个这个子类的实例。

# 方法1和方法2的创建方法类似import threadingdef 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 threadingclass 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()

加锁的操作这里不做叙述。