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.pswp.cn/news/206990.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206990.shtml
英文地址,請注明出處:http://en.pswp.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…