Python 中 Thread 线程的用法

使用thread一直没记录过,最近又忘记具体用法了,记录下

Thread()是Python标准库中threading模块的一个类,它可以用来创建和管理线程。线程是一种并发执行的方式,可以让你的程序在等待某些事件的同时,执行其他的任务。例如,你可以在一个线程中访问网络服务,而在另一个线程中更新用户界面。

要使用Thread(),你需要先导入threading模块:

import threading

然后,你可以创建一个Thread对象,指定它要执行的函数和参数:

t = threading.Thread(target=func, args=(arg1, arg2, ...))

其中,target参数是一个函数对象,表示线程要执行的任务;args参数是一个元组,表示传递给函数的参数。

接下来,你可以调用Thread对象的start()方法,来启动线程:

t.start()

这样,线程就会开始运行,调用指定的函数,并传入相应的参数。线程的运行是异步的,也就是说,它不会阻塞主线程的执行,而是在后台进行。

如果你想要等待线程结束,你可以调用Thread对象的join()方法:

t.join()

这样,主线程就会暂停,直到线程运行完毕。你也可以给join()方法传入一个超时时间,表示最多等待多少秒:

t.join(timeout)

如果线程在超时时间内结束,那么join()方法会返回None;如果线程在超时时间后仍然没有结束,那么join()方法会返回线程对象本身。

你可以通过Thread对象的属性和方法,来获取和控制线程的一些信息,例如:

- name: 线程的名称,可以在创建时指定,也可以通过setName()和getName()方法修改和获取。

- ident: 线程的标识符,是一个整数,可以通过ident属性获取,但不能修改。

- daemon: 线程的守护状态,是一个布尔值,表示线程是否随主线程退出而退出。可以在创建时指定,也可以通过setDaemon()和isDaemon()方法修改和获取。

- alive: 线程的存活状态,是一个布尔值,表示线程是否还在运行。可以通过is_alive()方法获取,但不能修改。

这里是一个简单的例子,演示了如何使用Thread()来创建和管理两个线程,分别打印出奇数和偶数:

import threadingimport time# 定义一个函数,打印出从start到end的奇数def print_odd(start, end):for i in range(start, end + 1):if i % 2 == 1:print(i)time.sleep(0.5)# 定义一个函数,打印出从start到end的偶数def print_even(start, end):for i in range(start, end + 1):if i % 2 == 0:print(i)time.sleep(0.5)# 创建两个线程对象,分别指定函数和参数t1 = threading.Thread(target=print_odd, args=(1, 10))t2 = threading.Thread(target=print_even, args=(1, 10))# 启动两个线程t1.start()t2.start()# 等待两个线程结束t1.join()t2.join()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/206990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序-插入排序与希尔排序

文章目录 一、插入排序二、希尔排序 一、插入排序 思路: 当插入第i(i>1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将…

Qt Rsa 加解密方法使用(pkcs1, pkcs8, 以及文件存储和内存存储密钥)

Qt RSA 加解密 完整使用 密钥格式: pkcs#1pkcs#8 如何区分密钥对是PKCS1还是PKCS8? 通常PKCS1密钥对的开始部分为:-----BEGIN RSA PRIVATE KEY-----或 -----BEGIN RSA PUBLIC KEY-----。而PKCS8密钥对的开始部分为:-----BEGIN…

基于Springboot+mybatis+mysql+jsp招聘网站

基于Springbootmybatismysqljsp招聘网站 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型:Java EE项目 项目名称:基于SPringBoot的照片网站 项目架构:B/S架构 开发语言:Java语言 前端技术&…

Swagger Array 逐步解密:带你简化开发工作

Swagger 允许开发者定义 API 的路径、请求参数、响应和其他相关信息,以便生成可读性较高的文档和自动生成客户端代码。而 Array (数组)是一种常见的数据结构,用于存储和组织多个相同类型的数据元素。数组可以有不同的维度和大小&a…

C++初学教程三

目录 一、运算符 一、自增自减运算符 二、位运算符 三、关系运算符

情绪管理法则

感受情绪,聆听情绪,接纳情绪,管理情绪,将自己从黑暗中拯救出来 感受情绪的价值,了解情绪产生的原因 其实情绪没有好坏之分,负面情绪是人体自我保护的产物 改变认知方式,做情绪的主人 典型案例…

轨道电流检测IC——FP355,助力蓄电池充电器、SPS(适配器)、电池管理系统、多口快充充电器的优雅升级

目录 一、FP355概述 二、FP355特点 三、FP355应用 随着移动设备的普及和人们对电力需求的不断增长,充电器的安全性和充电效率成为了重要的关注点。 作为一种能够精确检测电流的集成电路,轨道电流检测IC——FP355是个不错的选择。它不仅广泛应用于蓄电…

SpringBoot集成Spring Security+jwt+kaptcha验证(简单实现,可根据实际修改逻辑)

参考文章 【全网最细致】SpringBoot整合Spring Security JWT实现用户认证 需求 结合jwt实现登录功能,采用自带/login接口实现权限控制 熟悉下SpringSecurity SpringSecurity 采用的是责任链的设计模式,是一堆过滤器链的组合,它有一条很…

P5743 【深基7.习8】猴子吃桃

题目描述 一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;接下来的每一天它都会吃剩余的桃子的一半外加一个。第 n n n 天早上起来一看,只剩下 1 1 1 个桃子了。请问小猴买了几个桃子? 输入格式 …

鸿蒙(HarmonyOS)应用开发——http的使用

在使用app的时候,不可能将所有信息都存储在app中,是需要链接互联网,从服务端获取数据。 #mermaid-svg-nP3gq7NrsyR2Df4i {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nP3gq7Nrs…

03_W5500TCP_Client

上一节我们完成了W5500网络的初始化过程,这节我们进行TCP通信,w5500作为TCP客户端与电脑端的TCP_Server进行通信。 目录 1.TCP通信流程图: tcp的三次握手: tcp四次挥手: 2.代码分析: 3.测试&#xff1a…

Python游戏测试工具自动化遍历游戏中所有关卡

场景 游戏里有很多关卡(可能有几百个了),理论上每次发布到外网前都要遍历各关卡看看会不会有异常,上次就有玩家在打某个关卡时卡住不动了,如果每个关卡要人工遍历这样做会非常的耗时,所以考虑用自动化的方…

C语言第十六集(后续)(结构体)

1.匿名结构体(即不写结构体名)只能用一次, 而且匿名结构体写法特别危险 两个匿名结构体尽管内容完全相同,但编译器仍然认为二位是不相同的类型 结构的特殊声明搜 2.结构体自己给自己里面包含一个结构体变量((此结构体就是当前所处的这个结构体))指针是没有问题的,但是 结构…

AI专题报告:2022年中国人工智能产业研究报告

今天分享的AI系列深度研究报告:《AI专题报告:2022年中国人工智能产业研究报告》。 (报告出品方:艾瑞咨询) 报告共计:112页 人工智能参与社会建设的千行百业 价值性、通用性、效率化为产业发展战略方向 …

淘宝API接口系列丨商品详情数据接口丨关键词搜索商品列表接口丨商品评论,销量接口

要对接淘宝API接口,可以按照以下步骤进行操作: 注册成为淘宝开放平台开发者,并创建一个应用。在应用创建页面,需要填写应用的名称、描述等信息,并设置应用的API权限等级。获取App Key和App Secret。在应用创建后&…

淘宝商品详情:获取海量优质商品信息

淘宝商品详情接口,也称为淘宝商品详情API,是一个用于获取淘宝商品详情的接口。它可以帮助开发者快速获取淘宝商品信息,从而构建自己的电商应用程序。 在开始使用淘宝商品详情接口之前,首先需要了解以下几个概念和步骤&#xff1a…

jira创建用例,与任务关联

项目用的jira,但之前的用例放在禅道上,或者归档于svn,都不是很好用,所以研究了下jira的用法 1、下载插件: synapseRT - Test management and QA in JIRA 完成后在tab会多出一个test 2、常用的功能 1、建立用例&#…

【华为OD题库-081】最长的元音子串长度-Java

题目 题目描述: 定义当一个字符串只有元音字母一(a,e,i,o,u,A,E,l,O,U)组成, 称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成…

Gitlab+GitlabRunner搭建CICD自动化流水线将应用部署上Kubernetes

文章目录 安装Gitlab服务器准备安装版本安装依赖和暴露端口安装Gitlab修改Gitlab配置文件访问Gitlab 安装Gitlab Runner服务器准备安装版本安装依赖安装Gitlab Runner安装打包工具安装docker安装java17安装maven 注册Gitlab Runner 搭建自动化部署准备SpringBoot项目添加一个Co…

验证码的多种生成策略

&#x1f60a; 作者&#xff1a; 瓶盖子io &#x1f496; 主页&#xff1a; 瓶盖子io-CSDN博客 第一种 a.导入依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.10</ver…