pythonthread(python多线程处理)

pythonthread(python多线程处理)

ID:8791683

大小:30.83 KB

页数:6页

时间:2018-04-07

pythonthread(python多线程处理)_第1页
pythonthread(python多线程处理)_第2页
pythonthread(python多线程处理)_第3页
pythonthread(python多线程处理)_第4页
pythonthread(python多线程处理)_第5页
资源描述:

《pythonthread(python多线程处理)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Python多线程Python中使用线程有两种方式:函数或者用类来包装线程对象。函数式:调用thread模块中的start_new_thread()函数来产生新线程。语法如下:thread.start_new_thread(function,args[,kwargs])参数说明:·function-线程函数。·args-传递给线程函数的参数,他必须是个tuple类型。·kwargs-可选参数。#coding=utf-8#!/usr/bin/pythonimportthreadimporttime#为线程定义一个函数defprint_time(t

2、hreadName,delay):count=0whilecount<5:time.sleep(delay)count+=1print"%s:%s"%(threadName,time.ctime(time.time()))#创建两个线程try:thread.start_new_thread(print_time,("Thread-1",2,))thread.start_new_thread(print_time,("Thread-2",4,))except:print"Error:unabletostartthread"while1:pass执

3、行以上程序输出结果如下:Thread-1:ThuJan2215:42:172009Thread-1:ThuJan2215:42:192009Thread-2:ThuJan2215:42:192009Thread-1:ThuJan2215:42:212009Thread-2:ThuJan2215:42:232009Thread-1:ThuJan2215:42:232009Thread-1:ThuJan2215:42:252009Thread-2:ThuJan2215:42:272009Thread-2:ThuJan2215:42:312009Th

4、read-2:ThuJan2215:42:352009线程的结束一般依靠线程函数的自然结束;也可以在线程函数中调用thread.exit(),他抛出SystemExitexception,达到退出线程的目的。Python通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。thread模块提供的其他方法:·threading.currentThread():返回当前的线程变量。·threading.enumerate():返回一个包含正在运行的线程的list。正在运行指线程启动后

5、、结束前,不包括启动前和终止后的线程。·threading.activeCount():返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。除了使用方法外,线程模块同样提供了Thread类来处理线程,Thread类提供了以下方法:·run(): 用以表示线程活动的方法。·start():启动线程活动。·join([time]): 等待至线程中止。这阻塞调用线程直至线程的join()方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。·isAlive(): 返回线程是否活动的。·getNam

6、e(): 返回线程名。·setName(): 设置线程名。使用Threading模块创建线程使用Threading模块创建线程,直接从threading.Thread继承,然后重写__init__方法和run方法:#coding=utf-8#!/usr/bin/pythonimportthreadingimporttimeexitFlag=0classmyThread(threading.Thread):#继承父类threading.Threaddef__init__(self,threadID,name,counter):threading.

7、Thread.__init__(self)self.threadID=threadIDself.name=nameself.counter=counterdefrun(self):#把要执行的代码写到run函数里面线程在创建后会直接运行run函数print"Starting"+self.nameprint_time(self.name,self.counter,5)print"Exiting"+self.namedefprint_time(threadName,delay,counter):whilecounter:ifexitFlag:thr

8、ead.exit()time.sleep(delay)print"%s:%s"%(threadName,time.ctime(time.time())

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。