- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12__python-线程编程
////根标题=Python程序设计与应用实战
////主标题=线程编程
////作者=张勇
////地址1=电子科技大学~~数学科学学院
////地址2=
////地址3=
////标题缩减级别=1
1 Python多线程学习(一、线程的使用) 1
1.1 Python中的线程使用 1
1.1.1 函数式 2
1.2 创建threading.Thread的子类来包装一个线程对象 2
1.2.1 threading.Thread类的使用 3
1.3 线程同步 4
1.4 线程优先级队列(Queue) 6
1.5 thread对象中的一些方法 8
1.5.1 join方法 8
1.5.2 setDaemon()方法 9
1.5.3 isAlive方法 10
1.5.4 线程名 11
1.6 线程同步 11
1.6.1 简单的线程同步 12
1.6.2 使用条件变量保持线程同步 13
1.6.3 使用队列保持线程同步 14
Python多线程学习
Python中的线程使用
Python中使用线程有两种方式:函数或者用类来包装线程对象。
多线程类似于同时执行多个不同程序多线程运行有如下优点:
使用线程可以把占据长时间的程序中的任务放到后台去处理。
用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度
程序的运行速度可能加快
在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。
指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总是在进程得到上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。
线程可以被抢占(中断)。
在其他线程正在运行时,线程可以暂时搁置(也称为睡眠) -- 这就是线程的退让。
[python] view plaincopy
import time
import thread
def timer(no, interval):
cnt = 0
while cnt10:
print Thread:(%d) Time:%s/n%(no, time.ctime())
time.sleep(interval)
cnt+=1
thread.exit_thread()
def test(): #Use thread.start_new_thread() to create 2 new threads
thread.start_new_thread(timer, (1,1))
thread.start_new_thread(timer, (2,2))
if __name__==__main__:
test()
上面的例子定义了一个线程函数timer,它打印出10条时间记录后退出,每次打印的间隔由interval参数决定。thread.start_new_thread(function, args[, kwargs])的第一个参数是线程函数(本例中的timer方法),第二个参数是传递给线程函数的参数,它必须是tuple类型,kwargs是可选参数。
线程的结束可以等待线程自然结束,也可以在线程函数中调用thread.exit()或thread.exit_thread()方法。
创建threading.Thread的子类来包装一个线程对象
如下例:
import threading
import time
class timer(threading.Thread): #The timer class is derived from the class threading.Thread
def __init__(self, num, interval):
threading.Thread.__init__(self)
self.thread_num = num
self.interval = interval
self.thread_stop = Fa
您可能关注的文档
最近下载
- 鼓膜穿孔的修复手术及术后护理PPT.pptx VIP
- 非透明幕墙建筑外墙保温构造详图---L15J188.docx
- MacroSAN_MS系列存储设备_命令行用户手册_V3.0.17T10.pdf
- 智能网联汽车底盘线控系统装调与测试 课件全套 项目1--5 智能网联汽车底盘线控系统认知 ---智能网联汽车线控悬架系统认知.pptx
- 幼儿园大班语文练习题.pdf VIP
- 内蒙古地区马铃薯种植业发展现状及前景.pdf VIP
- (高清版)DB4228∕T 75-2022 《堇叶碎米荠生产技术规程》.pdf VIP
- 2025年度兵团连队职工招录考试练习试题附答案.doc
- 2025年继续教育公需课考试题.docx VIP
- 平顶山市焦庄垃圾填埋场封场工程施工组织设计书.doc VIP
文档评论(0)