pytnon—线程,进程
Posted cwl-bj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytnon—线程,进程相关的知识,希望对你有一定的参考价值。
一、what线程,what进程
1、进程
是资源的整合。一个程序对于操作系统来说就是一个进程、例如打开浏览器、打开word等都是打开一个进程。
2、线程
是程序里面的最小执行单元。帮助进程干活的,线程之间相互独立
多线程多用于处理IO密集型任务频繁写入读出,cpu负责调度,消耗的是磁盘空间
3、线程是包含在一个进程里面的,一个进程可以有多个线程
4、一个进程里面默认有一个线程
5、主线程与子线程,一个程序默认有一个主线程,由主线程来启动子线程
导入模块
import threading
传统方式(单线程)
def down_load(): time.sleep(5) print(‘运行完成‘) for i in range(3): down_load()
多线程方式
for i in range(3): t=threading.Thread(target=down_load) #实例化一个线程 t.start() #开始运行
down_load不要带(),不然属于自己调用了
线程之间相互独立
t1=time.time()
for i in range(3):
t=threading.Thread(target=down_load) #实例化一个线程
t.start() #开始运行
print(‘运行时间‘,time.time()-t1)
上面的代码,总共有4个线程,循环里面启动了3个线程,还有一个主线程在运行所以结果如下
主线程运行结束打印运行时间,后等待子线程结束
运行时间 0.0009999275207519531
运行完成
运行完成
运行完成
查看当前线程数和线程
print(threading.active_count()) #查看 线程数 print(threading.current_thread()) #查看 当前线程
主线程等待子线程结束(并行)
def down_load(): time.sleep(5) print(‘运行完成‘) # 多线程 t1=time.time() for i in range(3): t=threading.Thread(target=down_load) t.start() # t.join() #这里是树形结构不是并行结构 # t.join() #这里等待的是最后一个线程结束的时间 while threading.activeCount()!=1: #主线程等待子线程结束 pass
以上是关于pytnon—线程,进程的主要内容,如果未能解决你的问题,请参考以下文章