博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7.3.3 - 并发多线程 Thread对象的其他属性或方法
阅读量:4963 次
发布时间:2019-06-12

本文共 4263 字,大约阅读时间需要 14 分钟。

Thread对象的其他属性或方法

Thread实例对象的方法  # isAlive(): 返回线程是否活动的。  # getName(): 返回线程名。  # setName(): 设置线程名。threading模块提供的一些方法:  # threading.currentThread(): 返回当前的线程变量。  # threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。  # threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

例子: 查看线程名字

from threading import Thread, current_threadimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,) # 其中current_thread()就是拿到t1(也就是拿到t1这对象)    t1.start()    print(t1.getName())    print("主线程名字",current_thread().getName())
Thread-1 is running      # 子线程名字默认是Thread名字开头Thread-1主线程名字 MainThread   # 主线程名字默认是MainThread
运行结果

 

2. 改线程名字

from threading import Thread, current_threadimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,name="子线程") # 其中current_thread()就是拿到t1    t1.start()    # t1.setName("son线程")    print(t1.getName())    print("主线程名字",current_thread().getName())
子线程 is runningson线程主线程名字 MainThreadson线程 is done
运行结果

接下来该线程名字

from threading import Thread, current_threadimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,name="子线程") # 其中current_thread()就是拿到t1    t1.start()    t1.setName("son线程")  # 修改线程名字    print(t1.getName())    print("主线程名字",current_thread().getName()
子线程 is runningson线程主线程名字 MainThreadson线程 is done
运行结果

修改主线程名字

from threading import Thread, current_threadimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,name="子线程") # 其中current_thread()就是拿到t1    t1.start()    t1.setName("son线程")    print(t1.getName())    current_thread().setName("主线程")    print("主线程名字",current_thread().getName())
子线程 is runningson线程主线程名字 主线程  # 名字修改成功son线程 is done
运行结果

查看存活

from threading import Thread, current_threadimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,name="子线程") # 其中current_thread()就是拿到t1    t1.start()    # t1.setName("son线程")    # print(t1.getName())    # current_thread().setName("主线程")    print(t1.isAlive())    print("主线程名字",current_thread().getName())
子线程 is runningTrue主线程名字 MainThread子线程 is done
运行结果

等待

from threading import Thread, current_threadimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,name="子线程") # 其中current_thread()就是拿到t1    t1.start()    t1.join()    # t1.setName("son线程")    # print(t1.getName())    # current_thread().setName("主线程")    print(t1.isAlive())    print("主线程名字",current_thread().getName())
子线程 is running子线程 is doneFalse主线程名字 MainThread
运行结果

 

查看线程总数 activeCount

from threading import Thread, current_thread,activeCountimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,name="子线程") # 其中current_thread()就是拿到t1    t1.start()    # t1.setName("son线程")    # print(t1.getName())    # current_thread().setName("主线程")    # print(t1.isAlive())    # print("主线程名字",current_thread().getName())    print(activeCount())
子线程 is running2子线程 is done
运行结果

 

查看当前线程对象 enumerate

from threading import Thread, current_thread,activeCount,enumerateimport timedef task():    print("%s is running" % current_thread().getName())    time.sleep(2)    print("%s is done" % current_thread().getName())if __name__ == "__main__":    t1 = Thread(target=task,name="子线程") # 其中current_thread()就是拿到t1    t1.start()    print(enumerate())
子线程 is running[
, <_MainThread(MainThread, started 6932)>]子线程 is done
运行结果

 

转载于:https://www.cnblogs.com/caimengzhi/p/8516795.html

你可能感兴趣的文章
PHP中发送qq邮件
查看>>
测试用例设计——边界值法
查看>>
Asp.Net发送手机验证码
查看>>
Learning
查看>>
阻止jQuery事件冒泡
查看>>
微软版Virtual Earth卫星地图教程[from]
查看>>
Ionic 入门与实战之第三章:Ionic 项目结构以及路由配置
查看>>
poj 3272-Cow Traffic解题报告
查看>>
vue实例属性(vm.$els)
查看>>
安装LR时,登录名变成MI_Viewer的解决办法
查看>>
【codeforces 731E】Funny Game
查看>>
【codeforces 794B】Cutting Carrot
查看>>
【hiho一下 第145周】智力竞赛
查看>>
VS 输出窗口输出信息
查看>>
实现UniqueAttribute唯一性约束,sqlunique约束[转]
查看>>
【u026】房间最短路问题
查看>>
高德地图 定位等
查看>>
wenbao与cmd
查看>>
React使用的思考总结
查看>>
Django session/cookie
查看>>