1 / 12
文档名称:

《python多线程》.doc

格式:doc   大小:142KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《python多线程》.doc

上传人:changdan5609 2019/3/18 文件大小:142 KB

下载得到文件列表

《python多线程》.doc

相关文档

文档介绍

文档介绍:Python多线程学****一、Python中的线程使用:Python中使用线程有两种方式:函数或者用类来包装线程对象。1、函数式:调用thread模块中的start_new_thread()函数来产生新线程。如下例:viewplaincopytoclipboardprint?importtimeimportthreaddeftimer(no,interval):cnt=t<10:print'Thread:(%d)Time:%s\n'%(no,())(t+=()deftest():#()(timer,(1,1))(timer,(2,2))if__name__=='__main__':test()上面的例子定义了一个线程函数timer,它打印出10条时间记录后退出,每次打印的间隔由interval参数决定。(function,args[,kwargs])的第一个参数是线程函数(本例中的timer方法),第二个参数是传递给线程函数的参数,它必须是tuple类型,kwargs是可选参数。线程的结束可以等待线程自然结束,()()方法。2、,如下例:viewplaincopytoclipboardprint?importthreadingimporttimeclasstimer():#(self,num,interval):(self)===Falsedefrun(self):#Overwriterun()method,:print'ThreadObject(%d),Time:%s\n'%(,())()defstop(self):=Truedeftest():thread1=timer(1,1)thread2=timer(2,2)()()(10)()()returnif__name__=='__main__':test()就我个人而言,比较喜欢第二种方式,即创建自己的线程类,,线程的控制可以由自己定制。:1,(self,name=threadname)Threadname为线程的名字2,run(),通常需要重写,编写代码实现做需要的功能。3,getName(),获得线程对象名称4,setName(),设置线程对象名称5,start(),启动线程6,jion([timeout]),等待另一线程结束后再运行。7,setDaemon(bool),设置子线程是否随主线程一起结束,必须在start()之前调用。默认为False。8,isDaemon(),判断线程是否随主线程一起结束。9,isAlive(),检查线程是否在运行中。此外threading模块本身也提供了很多方法和其他的类,可以帮助我们更好的使用和管理线程。可以参看/-。假设两个线程对象t1和t2都要对num=0进行增1运算,t1和t2都各对num修改10次,num的最终的结果应该为20。但是由于是多线程访问,有可能出现下面情况:在num=0时,t1取得num=0。系统此时把t1调度为”sleeping”状态,把t2转换为”running”状态,t2页获得num=0。然后t2对得到的值进行加1并赋给num,使得num=1。然后系统又把t2调度为”sleeping”