进程&线程(二):Thread相关方法与属性

学习自:python进程、线程、协程 - 张岩林 - 博客园

1、threading.Thread

Thread方法

方法(使用方法为Thread.xxx) 说明
start() 激活线程
getName() 获取线程的名称
setName() 设置线程的名称
name 名称属性(不是方法)
is_alive() 判断线程是否为激活状态
isAlive() 同上
setDaemon 设置为后台线程或前台线程(具体见下)
ident 获取线程标识符
join() 阻塞主线程
run() 线程start()之后自动执行线程对象的run方法

Thread.setDaemon(False):前台线程——False;后台线程——True;

如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕之后,后台线程不论成功与否,均停止;如果是前台进程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台进程执行完毕后,程序停止。

2、threading.RLock与thread.Lock

RLock允许在同一线程中被多次acquire,而Lock却不允许这种情况。如果使用RLock,那么acquire必须和release必须成对出现,即必须调用相同次数的acquirerelease,才能真正释放所占用的锁。

3、threading.Event

Event对象用于主线程控制其他线程的执行,该对象主要提供了三个方法set、wait、clear.

事件处理机制:全局定义了一个Flag,如果Flag==False,那么当程序执行event.wait时就会阻塞,如果Flag==True,那么event.wait时不会阻塞

clear:将Flag设置为False

set:将Flag设置为True

posted @   ShineLe  阅读(154)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示