python支持native的多线程,是通过thread和threading两个模块实现。
thread是比较底层的模块,threading是对thread做了一些包装的。
threading.Thread是主要的线程类,初始化一个线程,然后调用其start方法就可以了,初始化的时候需要传递一个函数名字,还可以传递参数。基本类似于C#的Thread类。
python还有另外一种使用线程的方法,就是继承Thread类,然后重写run方法,个人感觉这种做法不是很好,因为run里面已经其实就是调用了传进来的target方法,继承下来重写反倒破坏了封装性。可能是习惯于C#的Thread吧。下面是threading里面的run方法的具体代码:
用threading模块开发多线程还是比较简单的。
比竟python程序,写得太复杂就python过头了。
thread是比较底层的模块,threading是对thread做了一些包装的。
threading.Thread是主要的线程类,初始化一个线程,然后调用其start方法就可以了,初始化的时候需要传递一个函数名字,还可以传递参数。基本类似于C#的Thread类。
import
threading
def th():
print threading.currentThread().name
t = threading.Thread(None,th2)
t.start()
def th():
print threading.currentThread().name
t = threading.Thread(None,th2)
t.start()
python还有另外一种使用线程的方法,就是继承Thread类,然后重写run方法,个人感觉这种做法不是很好,因为run里面已经其实就是调用了传进来的target方法,继承下来重写反倒破坏了封装性。可能是习惯于C#的Thread吧。下面是threading里面的run方法的具体代码:
def
run(self):
if self. __target :
self. __target ( * self. __args , ** self. __kwargs )
if self. __target :
self. __target ( * self. __args , ** self. __kwargs )
用threading模块开发多线程还是比较简单的。
比竟python程序,写得太复杂就python过头了。