首页 > 编程语言 >python创建线程传参误区记录

python创建线程传参误区记录

时间:2023-03-08 17:22:57浏览次数:31  
标签:传参 None target python args 线程 参数 td02

创建线程可以使用threading模块中的Thread方法;

其中Thread方法允许的参数如下:

(self, group=None, target=None, name=None, args=(), kwargs=None, *,daemon=None)

这个构造方法中,所有参数都是可选参数,即可以使用,也可以忽略。其中各个参数的含义如下:

group:指定所创建的线程隶属于哪个线程组(此参数尚未实现,无需调用);

target:指定所创建的线程要调度的目标方法(最常用);

args:以元组的方式,为 target 指定的方法传递参数;

kwargs:以字典的方式,为 target 指定的方法传递参数;

daemon:指定所创建的线程是否为后代线程。

这里主要记住三个参数(或者说两个),一个是target,另外是 args和 kwargs中的一个或者两个;

这里已args方式做个举例:

td02 = Thread(target=self.GitlabInfoget_local,args=(IP,Token)) 
#当设置为setDaemon(False)时(默认为False)。主线程需要等待子线程的结束才能结束;当设置为setDaemon(True)时,该线程为守护线程,主线程结束时,子线程会随之被回收。
td02.setDaemon(1)
td02.start()

注意这里,使用了args,以元组的方式传递参数;这是正确传递参数的方式。

那么如果错误传参会怎么样呢?(亲测,有卡死风险,原因是线程启动前目标函数就已经启动了,在目标函数结束前都不会正常响应)

td02 = Thread(target=self.GitlabInfoget_local(IP,Token)) 

#注意这里的传参方式,是在调用目标函数的时候,就直接给了参数,这会导致目标函数会立即启动,而不会等待线程拉起后再执行;

td02.setDaemon(1)
td02.start()

 

标签:传参,None,target,python,args,线程,参数,td02
From: https://www.cnblogs.com/babashi9527/p/17192649.html

相关文章

  • python基础
    1、type()语句 通过type()语句来得到数据的类型,能查看变量中存储的数据类型。 查看的是:变量储存的数据的类型。因为,变量无类型,但是它存储的数据有。 语法:type(被查......
  • 【流畅的Python0101】Python数据模型
    1.特殊方法示例:一摞Python风格的纸牌importcollectionsCard=collections.namedtuple('Card',['rank','suit'])classFrenchDeck:#Python2中要写成FrenchDeck(......
  • python学习-第三方库综合程序设计实验报告
    目录实验四: Python综合程序设计实验名称:Python综合程序设计              指导教师:      实验日期:2022年 12 月 5 日......
  • linux检测程序运行时间和内存峰值 Python脚本
    #!/usr/bin/envpython3#-*-encoding:utf-8-*-importsubprocessasspimportsysimporttimedefget_mem(pid):c=sp.Popen(['ps','-aux'],stdout=sp......
  • Python学习笔记:str.zfill补全位数
    一、介绍zfill函数用于在字符串的开头添加零,直到达到指定的长度。如果len参数的值小于字符串的长度,则不执行填充。具体使用语法为:str.zfill(len)如果是整型、浮点......
  • python自动化基础-花样输出
    彩色输出程序deflog():w='\x1b[1;33;40m'+'内容'+'\x1b[0m'print(w)v='\033[0;32;40m'+'内容'+'\033[0m'print(v)if__name__=......
  • Ubuntu 更换Python版本相关
    错误做法:卸载Python3Python是linux系统的底层应用,卸载Python3容易出现各种各样的问题。错误做法sudoaptremovepython3sudoaptautoremove遇到问题1:卸载了火狐浏......
  • python 提取csv文件内容遇到ufeff非法字符
    目录python提取csv文件内容遇到ufeff非法字符处理探测编码格式类型python提取csv文件内容遇到ufeff非法字符使用python3提取csv文件的时候,提取来的数据用set去重后发现......
  • python中的循环语句
    循环语句while循环​ 用于不固定次数的循环......
  • PyCharm入门级使用指南,Python开发必备!
    PyCharm是一个专业的PythonIDE,可以提供全面的Python开发支持,包括代码编辑、调试、测试、版本控制等功能。对于初学者来说,PyCharm可能会有点吓人,但是随着您的熟练使用,会发......