Python多線程學習(一)

本文主要是入門 Python 語言的多線程知識

  1. 多線程能夠近似於看做多任務的同時執行,線程是操做系統中直接支持的單元,各類主流語言都有多線程技術,可是 Python 建立的線程實例是真正實際的線程,不是虛擬模擬的。php

  2. Python 中提供了兩個庫,threading_thread ,Python3 推薦使用前者。前者也對後者進行了封裝。html

  3. 啓動一個線程,其實就是將要運行的任務封裝到一個函數裏面,建立一個線程實例,並將這個函數傳入線程實例,最後開始運行線程便可。python

  4. 目前實際的體會到的線程的主要特色:ios

    • 程序的運行速度可能會加快
    • 線程能夠把耗時長的的任務放到後臺去執行
    • 用戶界面能夠更加吸引人,(我以爲可能依託於上一個特色,正是由於都放到後臺運行任務,互動體驗也有提高),好比進度條
    • 在一些等待的任務實現上如用戶輸入、文件讀寫和網絡收發數據等,線程就比較有用了。在這種狀況下咱們能夠釋放一些珍貴的資源如內存佔用等等(這個還沒體會...)。

實戰( Python3 環境 )

def my_func():
        print("個人線程 %s 正在運行..." % threading.current_thread().name)
        n=0
        while n<3:
            n += 1
            print("%s >>> %s" % (threading.current_thread().name, n))
            time.sleep(1)
        print('個人線程 %s 結束' % threading.current_thread().name)
    print("主線程 %s 正在運行..." % threading.current_thread().name)
    t = threading.Thread(target = my_func, name = 'myThread')
    t.start()
    t.join()
    print("主線程 %s 結束" % threading.current_thread().name)
複製代碼

運行結果:bash

主線程 MainThread 正在運行...
個人線程 myThread 正在運行...
myThread >>> 1
myThread >>> 2
myThread >>> 3
個人線程 myThread 結束
主線程 MainThread 結束
複製代碼

小結:微信

  1. 每一個進程中默認啓動至少有一個子線程,被稱爲主線程,叫 MainThread ,由主線程能夠啓動其餘子線程,子線程的名字在建立時能夠定義。不指定則默認按 Thread-1Thread-2... 方式命名。網絡

  2. threading 模塊中的的 current_thread() 函數,返回當前實例多線程

本文參考(不分前後順序):yii

菜鳥:www.runoob.com/python3/pyt…svg

廖雪峯的網站:www.liaoxuefeng.com/wiki/101695…

但願看客老爺打賞些喝茶錢

支付寶

支付寶

微信

微信
相關文章
相關標籤/搜索