python:多線程(線程的創建和結束)


首先來體驗下什么是多線程:

如圖:利用多線程同時執行sing和worker2個函數:

'''多線程'''
import time
import threading

def sing():
    '''唱歌5秒鍾'''
    for i in range(3):
        print("---正在唱歌---")
        time.sleep(1)
# todo 創建Thread時執行的函數,運行結束,那么這個子線程就結束了
def worker():
    '''工作5秒鍾'''
    for i in range(3):
        print("---正在工作---")
        time.sleep(1)

def run():
    t1 = threading.Thread(target=sing)
    t2 = threading.Thread(target=worker)
    t1.start()
    t2.start()
if __name__ == '__main__':
    run()

 

 

線程的創建從調用start方法開始,函數結束時,線程結束。

如圖、;

'''多線程'''
import time
import threading


def sing():
    '''唱歌5秒鍾'''
    for i in range(5):
        print("---第{}次唱歌---".format(i))
        time.sleep(1)
# todo 創建Thread時執行的函數,運行結束,那么這個子線程就結束了

def worker():
    '''工作5秒鍾'''
    for i in range(5):
        print("---第{}次工作---".format(i))
        time.sleep(1)


def run():
    t1 = threading.Thread(target=sing)
    t2 = threading.Thread(target=worker)
    t1.start()    # TODO 調用start時,線程創建。函數結束的時候,線程結束。
    t2.start()
    while True:
        print(threading.enumerate())
        if len(threading.enumerate()) == 1:
            return
        time.sleep(1)


if __name__ == '__main__':
    run()

在類里面實現多線程,必須定義run方法,啟動線程時實際是調用的run方法:

import threading
import time

class MyThreading(threading.Thread):
    def run(self):
        '''通過繼承調用多線程必須有run方法'''
        for i in range(5):
            print("這是線程{}".format(i))
            time.sleep(1)
            self.mut()

    def mut(self):
        for i in range(1,10):
            for j in range(1,i+1):
                print("{}*{}={}".format(i,j,(i*j)),end='\t')
            print()

if __name__ == '__main__':
    mt = MyThreading()
    mt.start()

 使用sleep來控制,線程的執行順序:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM