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

Python 多線程,threading模塊,創(chuàng)建子線程的兩種方式示例

 更新時間:2019年09月29日 09:55:10   作者:houyanhua1  
這篇文章主要介紹了Python 多線程,threading模塊,創(chuàng)建子線程的兩種方式,結(jié)合實(shí)例形式分析了Python線程的原理與創(chuàng)建子線程的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Python 多線程,threading模塊,創(chuàng)建子線程的兩種方式。分享給大家供大家參考,具體如下:

GIL(全局解釋器鎖)是C語言版本的Python解釋器中專有的,GIL的存在讓多線程的效率變低(哪個線程搶到鎖,就執(zhí)行哪個線程)。在IO密集型程序中,多線程依然比單線程效率高(GIL通過IO阻塞自動切換多線程)。

解決GIL(全局解釋器鎖)的問題的三種方法:

1、不要用C語言版本的Python解釋器。
2、讓子線程運(yùn)行其他語言代碼(例如:主線程運(yùn)行Python代碼,子線程運(yùn)行C語言代碼(C語言的動態(tài)庫))。
3、多進(jìn)程代替多線程(多進(jìn)程可以利用多核CPU)。

創(chuàng)建子線程的第一種方式:

demo.py(通過函數(shù)名指定子線程的任務(wù)):

import threading
def test1():
  print("子線程運(yùn)行了...")
def main():
  # 通過 target=函數(shù)名 的方式定義子線程
  t1 = threading.Thread(target=test1) # 通過target指定子線程要執(zhí)行的任務(wù)。可以通過args=元組 來指定test1的參數(shù)。
  t1.start() # 只有在調(diào)用start方法后才會創(chuàng)建子線程并執(zhí)行
  # threading.enumerate() 打印正在執(zhí)行的線程,包括主線程和子線程
  print(threading.enumerate()) # [<_MainThread(MainThread, started 139724821161728)>, <Thread(Thread-1, started 139724795434752)>]
  # 當(dāng)子線程沒有結(jié)束時,主線程也不會結(jié)束。 當(dāng)主線程結(jié)束后,所有的子線程也會結(jié)束。
if __name__ == "__main__":
  main()

運(yùn)行結(jié)果:

子線程運(yùn)行了...
[<_MainThread(MainThread, started 7076)>, <Thread(Thread-1, started 2832)>]

創(chuàng)建子線程的第二種方式:

demo.py(通過類來定義子線程):

#coding=utf-8
import threading
# 通過類定義子線程。 繼承threading.Thread類
class MyThread(threading.Thread):
  # 開啟子線程時,會自動執(zhí)行run函數(shù)
  def run(self):
    print(self.name) # Thread-1 name屬性中保存的是當(dāng)前線程的名字
def main():
  t = MyThread() # 實(shí)例化自定義的子線程
  t.start() # 開啟子線程
if __name__ == '__main__':
  main()

運(yùn)行結(jié)果:

Thread-1

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》、《Python+MySQL數(shù)據(jù)庫程序設(shè)計入門教程》及《Python常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python學(xué)習(xí)筆記之While循環(huán)用法分析

    Python學(xué)習(xí)筆記之While循環(huán)用法分析

    這篇文章主要介紹了Python學(xué)習(xí)筆記之While循環(huán)用法,結(jié)合具體實(shí)例形式分析了while循環(huán)的原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-08-08
  • 快速進(jìn)修Python指南之簡易跳表

    快速進(jìn)修Python指南之簡易跳表

    這篇文章主要為大家介紹了Java開發(fā)者快速進(jìn)修Python指南之簡易跳表示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 解決PyCharm 中寫 Turtle代碼沒提示以及標(biāo)黃的問題

    解決PyCharm 中寫 Turtle代碼沒提示以及標(biāo)黃的問題

    這篇文章主要介紹了解決PyCharm 中寫 Turtle代碼沒提示以及標(biāo)黃的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python高階函數(shù)之filter()函數(shù)代碼示例

    Python高階函數(shù)之filter()函數(shù)代碼示例

    這篇文章主要介紹了Python高階函數(shù)之filter()函數(shù)代碼示例,獲取了一個序列的時候,想要把一些內(nèi)容去掉,保留一部分內(nèi)容的時候可以使用高效的filter()函數(shù),需要的朋友可以參考下
    2023-07-07
  • python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand

    python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand

    本文主要介紹了python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • pytorch實(shí)現(xiàn)MNIST手寫體識別

    pytorch實(shí)現(xiàn)MNIST手寫體識別

    這篇文章主要為大家詳細(xì)介紹了pytorch實(shí)現(xiàn)MNIST手寫體識別,使用全連接神經(jīng)網(wǎng)絡(luò),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • python3實(shí)現(xiàn)釘釘消息推送的方法示例

    python3實(shí)現(xiàn)釘釘消息推送的方法示例

    這篇文章主要介紹了python3實(shí)現(xiàn)釘釘消息推送的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • pytorch中Transformer進(jìn)行中英文翻譯訓(xùn)練的實(shí)現(xiàn)

    pytorch中Transformer進(jìn)行中英文翻譯訓(xùn)練的實(shí)現(xiàn)

    本文主要介紹了pytorch中Transformer進(jìn)行中英文翻譯訓(xùn)練的實(shí)現(xiàn),詳細(xì)闡述了使用PyTorch實(shí)現(xiàn)Transformer模型的代碼實(shí)現(xiàn)和訓(xùn)練過程,具有一定參考價值,感興趣的可以了解一下
    2023-08-08
  • 教你怎么用PyCharm為同一服務(wù)器配置多個python解釋器

    教你怎么用PyCharm為同一服務(wù)器配置多個python解釋器

    當(dāng)我們在服務(wù)器上創(chuàng)建了多個虛擬環(huán)境時,也可以在 PyCharm 中配置這些虛擬環(huán)境,方便不同的項目使用不同的環(huán)境,然而按照網(wǎng)上教程添加多個python解釋器后,PyCharm會自動幫我們創(chuàng)建多個重復(fù)的服務(wù)器,本文主要給出該問題的解決方法,同時也對添加解釋器做一個詳細(xì)的講解
    2021-05-05
  • 使用python實(shí)現(xiàn)兩數(shù)之和的畫解算法

    使用python實(shí)現(xiàn)兩數(shù)之和的畫解算法

    這篇文章主要介紹了使用python實(shí)現(xiàn)兩數(shù)之和的畫解算法,采用實(shí)例問題的描述來進(jìn)行問題分析,并給出用暴力求解和哈希表兩種方法解決方案,有需要的朋友可以參考下
    2021-08-08

最新評論