本文主要是入门 Python 语言的多线程知识
-
多线程可以近似于看作多任务的同时执行,线程是操作系统中直接支持的单元,各种主流语言都有多线程技术,但是 Python 创建的线程实例是真正实际的线程,不是虚拟模拟的。
-
Python 中提供了两个库,threading 和 _thread ,Python3 推荐使用前者。前者也对后者进行了封装。
-
启动一个线程,其实就是将要运行的任务封装到一个函数里面,创建一个线程实例,并将这个函数传入线程实例,最后开始运行线程即可。
-
目前实际的体会到的线程的主要特点:
- 程序的运行速度可能会加快
- 线程可以把耗时长的的任务放到后台去执行
- 用户界面可以更加吸引人,(我觉得可能依托于上一个特点,正是因为都放到后台运行任务,互动体验也有提升),比如进度条
- 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等(这个还没体会...)。
实战( Python3 环境 )
def my_func():
print("我的线程 %s 正在运行..." % threading.current_thread().name)
n=0
while n<3:
n += 1
print("%s >>> %s" % (threading.current_thread().name, n))
time.sleep(1)
print('我的线程 %s 结束' % threading.current_thread().name)
print("主线程 %s 正在运行..." % threading.current_thread().name)
t = threading.Thread(target = my_func, name = 'myThread')
t.start()
t.join()
print("主线程 %s 结束" % threading.current_thread().name)
运行结果:
主线程 MainThread 正在运行...
我的线程 myThread 正在运行...
myThread >>> 1
myThread >>> 2
myThread >>> 3
我的线程 myThread 结束
主线程 MainThread 结束
小结:
-
每个进程中默认启动至少有一个子线程,被称为主线程,叫 MainThread ,由主线程可以启动其他子线程,子线程的名字在创建时可以定义。不指定则默认按 Thread-1,Thread-2... 方式命名。
-
threading 模块中的的 current_thread() 函数,返回当前实例
本文参考(不分先后顺序):
菜鸟:www.runoob.com/python3/pyt…
廖雪峰的网站:www.liaoxuefeng.com/wiki/101695…
希望看客老爷打赏些喝茶钱
支付宝