首页 技术 正文
技术 2022年11月10日
0 收藏 998 点赞 2,614 浏览 1714 个字

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

二、

import _thread as threadimport timedef 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)​

Python连载31-threading的使用

二、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()

Python连载31-threading的使用

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

2.守护线程

​格式:线程.setDaemon(True)

作用​:

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

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

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

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

Python连载31-threading的使用

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")

Python连载31-threading的使用

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

三、源码

d24_2_usage_of_threading.py

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

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,后台回复”礼包“,获取大数据学习资料

Python连载31-threading的使用

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905