线程的基本使用以及参数的简介
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
# 表示守住主线程, 主线程退出子线程直接销毁不再执行代码