欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python?多線程threading程序詳情

 更新時(shí)間:2022年04月14日 12:18:37   作者:WX_LW  
這篇文章主要介紹了python?多線程threading程序詳情,Thread類表示在單獨(dú)的控制線程中運(yùn)行的活動,下文相關(guān)資料需要的小伙伴可以參考一下

CPython implementation detail: 在 CPython 中,由于存在全局解釋器鎖, 同一時(shí)刻只有一個(gè)線程可以執(zhí)行 Python 代碼(雖然某些性能導(dǎo)向的庫可能會去除此限制)。 如果你想讓你的應(yīng)用更好地利用多核心計(jì)算機(jī)的計(jì)算資源,推薦你使用multiprocessing或concurrent.futures.ProcessPoolExecutor但是,如果你想要同時(shí)運(yùn)行多個(gè) I/O 密集型任務(wù),則多線程仍然是一個(gè)合適的模型。

再來引入一個(gè)概念:

  • 并行(parallelism):   是同一時(shí)刻,每個(gè)線程都在執(zhí)行。
  • 并發(fā)(concurrency):是同一時(shí)刻,只有一個(gè)線程執(zhí)行,然后交替執(zhí)行(再加上電腦運(yùn)行速度快)。所以從一個(gè)宏觀的角度來看,似乎每個(gè)線程都在執(zhí)行了。

可以知道python線程是并發(fā)的。

 關(guān)于線程Threading的方法(獲取線程的某種屬性)。

  • active_count():它會獲得,執(zhí)行這個(gè)方法時(shí),還存活的Thread()的對象數(shù)量。
  • enumerate():返回當(dāng)前所有存活的Thread對象的列表。
  • current_thread():返回當(dāng)前調(diào)用者 控制Thread()線程的對象。如果調(diào)用者控制的線程對象不是由threading創(chuàng)建,則會返回一個(gè)功能受限的虛擬線程對象。
  • get_ident():返回當(dāng)前線程的“線程標(biāo)識符”。它是一個(gè)非零整數(shù)。
  • get_native_id():返回內(nèi)核分配給當(dāng)前線程的原生集成線程ID。這是一個(gè)非負(fù)整數(shù)。
  • main_thread():返回主線程(thread)對象,一般是python解釋器開始時(shí)創(chuàng)建的線程。

線程簡介:

 Thread類表示在單獨(dú)的控制線程中運(yùn)行的活動。指定活動有兩種方法:將可調(diào)用對象傳遞給構(gòu)造函數(shù),或重寫子類中的run()方法。子類中不應(yīng)重寫任何其他方法(構(gòu)造函數(shù)除外)。換句話說,只重寫這個(gè)類的_init__;()和run()方法

一旦線程活動開始,該線程會被認(rèn)為是 '存活的' 。當(dāng)它的run()  方法終結(jié)了(不管是正常的還是拋出未被處理的異常),就不是'存活的'。 

先看看該類的參數(shù)有哪些:

class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)

  • group:官方的解釋是,為了日后擴(kuò)展ThreadGroup類實(shí)現(xiàn)而保留。(唉,我也不太清楚的)
  • target:是要于多線程的函數(shù)
  • name:是線程的名字
  • args :函數(shù)的參數(shù),類型是元組()
  • kwargs:函數(shù)的參數(shù),類型是字典{}

為了便于理解,先舉一個(gè)小例子,為了方便理解,先簡單了解一下該類的一個(gè)方法(函數(shù)在類中被稱為方法):

  • start():開始線程活動
import threading
import time
?
# 打印函數(shù)a
def printa(a):
? ? count = 0
? ? while count < 5:
? ? ? ? time.sleep(2)
? ? ? ? print("線程:%s。打?。?s。時(shí)間:%s。" % (threading.current_thread().name, a, time.ctime()))
? ? ? ? count += 1
?
# 打印函數(shù)b
def printb(b):
? ? count = 0
? ? while count < 5:
? ? ? ? time.sleep(4)
? ? ? ? print("線程:%s。打?。?s。時(shí)間:%s。" % (threading.current_thread().name, b, time.ctime()))
? ? ? ? count += 1
?
# threading.Thread(target=,args=(),name='')
t1 = threading.Thread(target=printa, args=(10,), name='線程1')
t2 = threading.Thread(target=printb, args=(20,), name='線程2')
?
t1.start()
t2.start()
?
t1.join()
t2.join()
?
print("退出主線程")
import threading
import time
?
# 打印函數(shù)a
def printa(a):
? ? count = 0
? ? while count < 5:
? ? ? ? time.sleep(2)
? ? ? ? print("線程:%s。打印:%s。時(shí)間:%s。" % (threading.current_thread().name, a, time.ctime()))
? ? ? ? count += 1
?
# threading.Thread(target=,args=(),name='')
threadList = []
for i in range(3):
? ? t = threading.Thread(target=printa, args=(i,))
? ? threadList.append(t)
?
for t in threadList:
? ? t.start()
?
for t in threadList:
? ? t.join()
? ??
print("退出主線程")

到此這篇關(guān)于python 多線程threading程序詳情的文章就介紹到這了,更多相關(guān)python 多線程threading內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 實(shí)現(xiàn)鍵盤鼠標(biāo)按鍵模擬

    Python 實(shí)現(xiàn)鍵盤鼠標(biāo)按鍵模擬

    這篇文章主要介紹了Python 實(shí)現(xiàn)鍵盤按鍵模擬的方法,幫助大家提高辦公效率,感興趣的朋友可以了解下
    2020-11-11
  • wxPython的安裝圖文教程(Windows)

    wxPython的安裝圖文教程(Windows)

    下面小編就為大家分享一篇wxPython的安裝圖文教程(Windows),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Python編程中類與類的關(guān)系詳解

    Python編程中類與類的關(guān)系詳解

    在本文里小編給大家整理了關(guān)于Python編程中類與類的關(guān)系以及相關(guān)代碼知識點(diǎn),需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • Python 中使用 argparse 解析命令行參數(shù)

    Python 中使用 argparse 解析命令行參數(shù)

    這篇文章主要介紹了Python 中使用 argparse 解析命令行參數(shù),argparse 模塊是一個(gè)強(qiáng)大的命令行參數(shù)解析器,還有很多功能沒能在這里介紹。下面文化在哪個(gè)詳細(xì)介紹該內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 詳解如何利用pandas進(jìn)行數(shù)據(jù)行轉(zhuǎn)列和列轉(zhuǎn)行

    詳解如何利用pandas進(jìn)行數(shù)據(jù)行轉(zhuǎn)列和列轉(zhuǎn)行

    這篇文章主要為大家詳細(xì)介紹了如何利用pandas進(jìn)行數(shù)據(jù)行轉(zhuǎn)列和列轉(zhuǎn)行,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2007-02-02
  • 淺談python中字典append 到list 后值的改變問題

    淺談python中字典append 到list 后值的改變問題

    今天小編就為大家分享一篇淺談python中字典append 到list 后值的改變問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 淺析Flask如何使用日志功能

    淺析Flask如何使用日志功能

    這篇文章主要為大家詳細(xì)介紹了Flask是如何使用日志功能的,文中的示例代碼講解詳細(xì),對我們深入了解Flask有一定的幫助,需要的可以參考一下
    2023-05-05
  • 使用python制作一個(gè)壓縮圖片小程序

    使用python制作一個(gè)壓縮圖片小程序

    這篇文章主要為大家詳細(xì)介紹了如何使用python制作一個(gè)壓縮圖片小程序,文中的示例代碼簡潔易懂,具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下
    2023-10-10
  • python按行讀取文件,去掉每行的換行符\n的實(shí)例

    python按行讀取文件,去掉每行的換行符\n的實(shí)例

    下面小編就為大家分享一篇python按行讀取文件,去掉每行的換行符\n的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 關(guān)于python3.9安裝wordcloud出錯的問題及解決辦法

    關(guān)于python3.9安裝wordcloud出錯的問題及解決辦法

    這篇文章主要介紹了關(guān)于python3.9安裝wordcloud出錯的問題及解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評論