python多线程和线程池使用记录

python 通过  from threading import Thread  使用Thread类

# 通过 threading模块引用Thread类
from threading import Thread
# 自定义线程 继承 Thread, 重写run方法
class MyThread(Thread):
    def run(self):
        for i in range(50):
            print("funcion", i)

if __name__ == '__main__':
    t = MyThread()
    # 同java一样 调用 start()方法,线程进入准备好的状态
    t.start()
    for i in range(50):
        print("main", i)

 

python 通过  from concurrent.futures import ThreadPoolExecutor 使用线程池类

# python 使用线程池
from concurrent.futures import ThreadPoolExecutor

def func(name):
    for i in range(50):
        print(name, i)

if __name__ == '__main__':
    # 创建线程池 容量为50
    with ThreadPoolExecutor(50) as t:
        for i in range(30):
            # name 同func方法的参数
            t.submit(func, name=f"线程{i}")

    # 在线程池的任务全部结束后才 执行下面的语句
    print("hello!")

 

python 执行异步协程操作 使用 async (异步操作关键字) 和 await (异步操作挂起关键字)。

当程序出现同步操作的时候,异步会中断。  time.sleep(1) 和 requests.get() 都是同步操作。

posted @ 2022-05-11 13:25  不要西红柿  阅读(73)  评论(0编辑  收藏  举报