• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python threading的使用方法解析

python 搞代码 4年前 (2022-01-07) 20次浏览 已收录 0个评论

这篇文章主要介绍了Python threading的使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、 例子:我们对传参是有要求的必须传入一个元组,否则报错

 import _thread as thread import time def loop1(in1): print("Start loop 1 at:", time.ctime()) print("我是参数", in1) time.sleep(4) print("End loop 1 at:", time.ctime()) def loop2(in1, in2): print("Start loop 2 at:", time.ctime()) print("我是参数", in1, "和参数 ", in2) time.sleep(4) print("End loop 1 at:", time.ctime()) def main(): print("Starting at:", time.ctime()) thread.start_new_thread(loop1, ("liuming", )) # 上面我们传参的时候, 我用的是:(“ liuming”), 这里面是没有逗号的, 结果编译报错, 告诉我, 这里面必须传入元组 # 因此, 我才在里面加了一个逗号, 使其变成一个元组 thread.start_new_thread(loop2, ("zhanglei", "liuhao")) print("All done at:", time.ctime()) if __name__ == "__main__": main() while True: time.sleep(10) ​

二、threading的使用

直接利用threading.Thread生成Thread的实例

格式:

t= threading.Thread(target=函数体,args=(,))#参数args要传递元组

​t.start()#启动多线程

t.join()#等待多线程执行完成

 def main(): print("Start at :", time.ctime()) t1 = threading.Thread(target = loop1, args = ("王老大", )) t1.start()# 启动多线程 t2 = threading.Thread(target = loop2, args = ("孙子", "好吗")) t2.start() t1.join() t2.join() print("End at :", time.ctime()) if __name__ == "__main__": main()

从上面可以看出来,我们启动了两个线程,但是这两个线程执行完了才打印​最后一个结束语句。

2.守护线程

​格式:线程.setDaemon(True)

作用​:

(1)如果在程序中将子线程设置为守护线程,则子线程会在主线程结束的时候自动退出​;

(2)一般认为,守护线程不重要或者不允许脱离子线程而独立运行;

(3)守护线程能否有效果和环境有关系

注意点:该语句一定要写在start语句之前,否则就会把子程序无限时间挂起,运行报错,​如:

 def fun(): print("Start fun") time.sleep(2) print("End fun") ​print('Main thread') t3 = threading.Thread(target = fun, args = ()) t3.setDaemon(True) t3.start() time.sleep(1) print("Main thread End")

​解释:我们可以看出主线程结束后(即打印完了”Main thread End”)后,我们的子线程的最后一个打印没有出来,程序就结束了,说明主线程结束,子线程无论执行到哪里都会被kill掉,和我们的预期一样。

三、源码

d24_2_usage_of_threading.py

地址:https://github.com/ruigege66/Python_learning/blob/master/d24_2_usage_of_threading.py

以上就是Python threading的使用方法解析的详细内容,更多请关注gaodaima搞代来源gao*daima.com搞@代#码网码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python threading的使用方法解析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址