如何在python中“开小灶” —— python异步线程指导

如何在python中“开小灶” —— python异步线程指导_第1张图片

文章目录

  • 一、问题来源
  • 二、注意事项
  • 三、举例

一、问题来源

问题是这样的,在python中写代码遇到个问题,跑程序时有某一步很耗时,导致接口响应的时间很慢,那么就有个办法,把这一步放入异步线程中,主线程走主线程的,耗时的一步异步就行,这也就是异步的思想的应用了。

二、注意事项

这个方法的唯一要注意的是,耗时的步骤不影响返回的数据,比如可以是保存东西,做个标识等等。

三、举例

举个例子,如主线程生成数字,异步线程打印出来:

import random
import threading
import time

print_list = []


def print_number(message):
	print(message)
    time.sleep(10)
    print("=========> enter print_number<==========\n")
    while True:
        for i in print_list:
            print(i)
            print_list.pop()


def generate_number():
    print("=========> enter generate_number<==========\n")
    n = 5
    while n > 0:
        # time.sleep(2)
        number = random.randint(10000, 99999)
        print_list.append(number)
        n -= 1


if __name__ == "__main__":
    thread = threading.Thread(target=print_number, args=("Hello, World!",))  # 另开异步线程打印数字
    # thread.daemon = True  # 设置为守护线程,主线程结束时,该线程也会结束
    thread.start()
    generate_number()  # 主线程生成数字

这就ok了~ Enjoy~

∼ O n e   p e r s o n   g o   f a s t e r ,   a   g r o u p   o f   p e o p l e   c a n   g o   f u r t h e r ∼ \sim_{One\ person\ go\ faster,\ a\ group\ of\ people\ can\ go\ further}\sim One person go faster, a group of people can go further

你可能感兴趣的:(工程技术,python,开发语言,异步,线程)