栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

线程在调用Thread.start之前开始运行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

线程在调用Thread.start之前开始运行

由于尾随的

()
target=self.read()
,你正在运行
self.read
在错误的线程,在 当前 线程-而不是新线程你创建-并传递
返回值
的的
self.read
召唤为
target
的说法
Thread
Thread
期望传递给函数以进行调用,因此只需删除括号并记住启动线程即可:

t1=threading.Thread(target=self.read)t1.start()print("something")

对于需要参数的目标,可以使用

args
和的
kwargs
参数
threading.Thread
,也可以使用lambda。例如,要
f(a, b,x=c)
在线程中运行,可以使用

thread = threading.Thread(target=f, args=(a, b), kwargs={'x': c})

要么

thread = threading.Thread(target=lambda: f(a, b, x=c))

虽然看出来,如果你选择的拉姆达-
拉姆达将查找

f
a
b
,并
c
在使用时,而不是在
lambda
被定义,因此如果您重新分配任何这些变量的线程调度之前可能会得到意想不到的结果(这可能即使您
start
立即致电,也要花任意时间)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626562.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号