Python day09_线程

线程的基本使用以及参数的简介

import threading # 导入线程模块

# 显示学生信息

def show_info(name, age):

    # 扩展: -获取当前代码执行的线程对象

    current_thread = threading.current_thread()

    print("show_info:", current_thread)

    print("我叫:%s 年龄:%d" % (name, age))

if __name__ == '__main__':

    # 扩展: -获取当前代码执行的线程对象

    current_thread = threading.current_thread()

    print("main:", current_thread)

# 获取当前程序活动线程的列表

    thread_list = threading.enumerate()

    print(thread_list, len(thread_list))

    # 扩展:-- 获取活动线程的个数

    print(threading.active_count())

    # 创建线程

    # group: 线程组,默认值是None,目前只能使用None值

    # target: 执行目标的函数

    # name: 线程名, 默认起名字类似与: Thread-1, ....

    # args:以元组的方式给函数传参

    # kwargs: 以字典的方式给函数传参

    # sub_thread = threading.Thread(group=None, target=show_info, name="mythread", args=("张三", 20))

    # print(sub_thread)

    # sub_thread.start()

    sub_thread = threading.Thread(target=show_info, name="mythread", kwargs={"name": "xxx", "age": 18})

    print(sub_thread)

    sub_thread.start()

    #  使用元组和字典传参

    # sub_thread = threading.Thread(target=show_info, name="mythread", args=("xxx",), kwargs={"agege": 18})

    #

    # print(sub_thread)

    # sub_thread.start()

###################注意点###########################

# 1. 线程之间执行是无序

# 2. 主线程会等待所有的子线程执行完成以后程序再退出

# 3. 守护主线程方式1

    # daemon=True: 表示守住主线程, 主线程退出子线程直接销毁不再执行代码

    # sub_thread = threading.Thread(target=test, daemon=True)

# 方式2

    # 表示守住主线程, 主线程退出子线程直接销毁不再执行代码

你可能感兴趣的:(Python day09_线程)