【问题标题】:Wait for function to finish python等待函数完成python
【发布时间】:2015-04-13 23:07:35
【问题描述】:

我有两个功能:

  1. get_list 将站点域列表填充到 A 列中的 Excel 工作表中
  2. get_traffic 为每个站点调用 API,并将其填充到相关站点域旁边的 B 列

问题是函数 2 (get_traffic) 在开始之前没有等待函数 1 (get_list) 完成,因此我没有得到我需要的数据。

我的问题是:如何让一个函数在运行之前等待另一个函数完成?

代码:

get_list(wb)
get_traffic(wb)

谢谢!

【问题讨论】:

  • 您应该始终发布您尝试解决问题的代码。此外,这听起来像是一个需要使用线程的问题。
  • 你的代码有什么问题?不会运行第一个函数,然后运行第二个吗?
  • get_list 是如何实现的?它是在内部使用threading 或类似的,还是调用某种异步API?

标签: python excel function python-2.7 wait


【解决方案1】:

使用threading

t = threading.Thread(target=get_list, args=wb)
t.start()

while t.isAlive():
    pass

t = threading.Thread(target=get_traffic, args=wb)
t.start()

【讨论】:

  • 循环占用 CPU 吗?
  • @TigerhawkT3 不,不是真的,但如果您担心,可以在循环内使用time.sleep(0.01),这实际上应该会略微提高性能。
  • Ew,当然是it will hog CPU。使用Event objects 会更好。此外,您忘记启动线程。如果您先运行一个函数,然后再运行另一个函数,我根本就没有使用线程的意义。
  • @KSFT 哎呀,你说得对,我忘了启动它们。这只是一个快速而肮脏的解决方案。它不会赢得任何奖项,但它会解决 OP 的问题。
猜你喜欢
  • 1970-01-01
  • 2019-06-16
  • 2020-06-10
  • 1970-01-01
  • 2015-09-16
  • 2017-06-22
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多