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—线程,进程的主要内容,如果未能解决你的问题,请参考以下文章

多线程编程

多线程编程

多个请求是多线程吗

python多线程

Pytnon中的SyntaxError: invalid syntax出错?

[Python3] 043 多线程 简介