python多线程编程方式分析示例详解
在Python多线程中如何创建一个线程对象 复制代码 代码如下: import threading class mythread(threading.Thread): def __init__(self,threadname): threading.Thread.__init__(self,name = threadname) 这才仅仅是个空线程,我可不是要他拉空车的,他可得给我干点实在活。很简单,重写类的run()方法即可,把你要在线程执行时做的事情都放到里面 复制代码 代码如下: import threading import time class mythread(threading.Thread): def __init__(…): …. def run(self): for i in range(10): print self.getName,i time.sleep(1) 以上代码我们让这个线程在执行之后每隔1秒输出一次信息到屏幕,10次后结束 复制代码 代码如下: def t1(…): … t2.join() 这样t1在执行到t2.join()语句后就会等待t2结束后才会继续运行。 复制代码 代码如下: def t1(…): … t2.join(10) 如果一个进程的主线程运行完毕而子线程还在执行的话,那么进程就不会退出,直到所有子线程结束为止,如何让主线程结束的时候其他子线程也乖乖的跟老大撤退呢?那就要把那些不听话的人设置为听话的小弟,使用线程对象的setDaemon()方法,参数为bool型。True的话就代表你要听话,我老大(主线程)扯呼,你也要跟着撤,不能拖后腿。如果是False的话就不用那么听话了,老大允许你们将在外军命有所不受的。需要注意的是setDaemon()方法必须在线程对象没有调用start()方法之前调用,否则没效果。 复制代码 代码如下: t1 = mythread('t1′) print t1.getName(),t1.isDaemon() t1.setDaemon(True) print t1.getName(),t1.isDaemon() t1.start() print ‘main thread exit' 当执行到 print 'main thread exit'后,主线程就退出了,当然t1这个线程也跟着结束了。但是如果不使用t1线程对象的setDaemon()方法的话,即便主线程结束了,还要等待t1线程自己结束才能退出进程。isDaemon()是用来获得一个线程对象的Daemonflag状态的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |