Python之多线程

# 开启多线程的方式一
# from threading import Thread
# import time
# # 定义需要多线程执行的代码
# def func(n):
#     time.sleep(1)
#     print(n)
# # 定义一个类
# class MyThread(Thread):
#     # 如果要传参数要定义初始化方法
#     def __init__(self,num):
#         # 要先执行父类的初始化方法
#         super().__init__()
#         # 定义自己属性
#         self.num = num
#     # 重写run方法,当线程开启时,自动调用此方法
#     def run(self):
#         func(self.num)
#
# if __name__ == '__main__':
#     for i in range(10):
#         # 实力化一个线程对象
#         t = MyThread(i)
#         # 开启线程,调用MyThread重写的run方法
#         t.start()

# 开启多线程方法二
# from threading import Thread
# import time
#
# def func(n):
#     time.sleep(1)
#     print(n)
# if __name__ == '__main__':
#     for i in range(10):
#         t = Thread(target=func,args=(i,))
#         t.start()

'''
Python多线程关于GIL(全局解释器锁)的相关信息:
1.GIL锁的特性不是python语言所有的,是CPython解释器所有的
2.GIL锁锁的是线程,不是代码块
3.GIL锁使得同一时间内,只有一个线程能够访问CPU,所以GIL锁作用下的Python多线程并不是真正意义的并行,即使CPU个数有多个,同一时间也能访问一个
4.大多数场景下,程序都是高IO型,因此多线程作用还是非常明显
5.高IO场景下推荐使用多线程,高CPU场景下推荐使用多进程
'''

# 关于线程的几个小方法
# import threading
# 
# def func():
#     # 获取线程名
#     t_info = threading.current_thread()
#     print(t_info.name)
#     # 获取线程ID
#     print(t_info.ident)
# if __name__ == '__main__':
#     for i in range(10):
#         t = threading.Thread(target=func)
#         t.start()
#     # 活跃线程的个数
#     print("活跃线程数:",threading.active_count())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值