python里有两个模块支持线程:thread和threading模块。
thread模块
thread模块的线程是比较老的线程支持,类似于C中的api,通过调用start_net_thread函数,把线程函数传递进去,就创建一个新的线程执行。其它的同步之类的操作都必须自己调用。
threading模块
threading模块是比较高级的线程模块,它提供了一个方便使用的Thread类,还担供了同步机制。
Thread类的三种使用方式:
第一种:创建Thread实例,传递进一个函数,这个函数就是线程要执行的函数。
第二种:创建Thread实例,传递进一个可调用的类实例。这个类实例要有一个__call__(self)的方法,这就是线程要调用的函数体。
第三种:从Thread派生子类,子类实现run(self)方法,这就是线程要调用的函数体。
这三种方式创建实例后,都需要手动调用Thread类的start()方法,线程才真正开始执行。
Thread类有一个方法join(),用于等待线程的退出。