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

Python多线程使用来自另一个线程中的线程的数据,python,multithreading,Python,Multithreading,我是Python线程新手,我尝试做的是: 1个带有While循环的线程,该线程将每N秒执行一次对API的GET请求以刷新数据 第二个线程有一个While循环,它将使用数据(ip地址)每N秒ping一次目标 因此,我正在寻找一种方法来启动第一个线程,然后只在第一个API调用后启动第二个线程,然后将这些数据共享给第二个线程,以便它可以执行其逻辑 有人能帮我吗?谢谢。根据您的要求,这里有一个简单的样板代码,您可能想尝试一下 import time import threading availab

我是Python线程新手,我尝试做的是:

  • 1个带有While循环的线程,该线程将每N秒执行一次对API的GET请求以刷新数据
  • 第二个线程有一个While循环,它将使用数据(ip地址)每N秒ping一次目标
因此,我正在寻找一种方法来启动第一个线程,然后只在第一个API调用后启动第二个线程,然后将这些数据共享给第二个线程,以便它可以执行其逻辑


有人能帮我吗?谢谢。

根据您的要求,这里有一个简单的样板代码,您可能想尝试一下

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()

您应该知道
线程化
队列
。我添加了第二个全局变量来共享API调用的结果,它可以像预期的那样完美工作,谢谢!