Python多线程使用另一个线程中的一个线程的数据

时间:2020-03-03 08:00:07

标签: python multithreading

我是Python线程的新手,我想做的是:

  • 1个带有While循环的线程,它将每N秒执行一次对API的GET请求以刷新数据
  • 带有While循环的第二个线程将每N秒使用数据(IP地址)ping目标。

所以我一直在寻找一种方法来启动第一个线程,然后仅在第一次API调用之后启动第二个线程,然后将这些数据共享给第二个线程,以便它可以执行其逻辑。

有人可以帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

根据您的要求,这是您可能想尝试的简单样板代码,

import time
import threading

available = False

def thread1():
    global available
    while True:
        # TODO: call API
        # --------------

        available = True # set available True after API call
        time.sleep(5) # perform API calls after every 5 seconds

def thread2():
    while True:
        # TODO: perform ping
        # --------------

        # perform ping request after every 5 seconds
        time.sleep(5)

if __name__ == "__main__":
    t1 = threading.Thread(target=thread1, name="thread1")
    t2 = threading.Thread(target=thread2, name="thread2")

    t1.start()

    while not available:
        time.sleep(0.1)
    else:
        t2.start()