1. 程式人生 > 其它 >【強基09】Python 對有形參傳遞的函式或類進行多執行緒操作

【強基09】Python 對有形參傳遞的函式或類進行多執行緒操作


需求:本來張三澆花要6秒鐘的時間,露絲鑽孔要5秒鐘的時間,總共需要11秒的時間,設計個方案,讓他們倆把活都幹出來,並且時間越短越好

那就執行緒雙開吧,哈哈哈

import time
from threading import Thread


def work1(name):
    for i in range(6):
        time.sleep(1)
        print('work1----{}在澆花的第{}秒'.format(name, i + 1))


def work2(name, age):
    for i in range(5):
        time.sleep(1)
        print('work2---{}今年{}歲,在鑽孔的第{}秒'.format(name, age, i + 1))


if __name__ == '__main__':
    # 注意target 後面的值不能加括號
    # 方式1:通過args傳遞引數,注意點:args是個元祖,加個逗號
    t1 = Thread(target=work1, args=('張三',))

    # 方式2:通過kwargs傳遞引數,注意點:kwargs是個字典,key的值要和引數名一致
    t2 = Thread(target=work2, kwargs={'name': '露絲', 'age': 108})

    # 執行執行緒
    t1.start()
    t2.start()


執行結果如下:

work1----張三在澆花的第1秒
work2---露絲今年108歲,在鑽孔的第1秒
work1----張三在澆花的第2秒
work2---露絲今年108歲,在鑽孔的第2秒
work1----張三在澆花的第3秒
work2---露絲今年108歲,在鑽孔的第3秒
work1----張三在澆花的第4秒
work2---露絲今年108歲,在鑽孔的第4秒
work1----張三在澆花的第5秒
work2---露絲今年108歲,在鑽孔的第5秒
work1----張三在澆花的第6秒