【问题标题】:Threading in Python, "communication" between threadsPython中的线程,线程之间的“通信”
【发布时间】:2020-06-01 22:09:24
【问题描述】:

我有两个功能:def is_updated_database(): 正在检查数据库是否已更新,另一个def scrape_links(database): 正在通过一组链接(从上述数据库下载)进行抓取。

所以我想要做的是当def is_updated_database(): 发现更新已下载时,我想停止def scrape_links(database): 并使用新的函数参数重新加载它(database 这将是新链接的列表)。

我的尝试:我知道如何运行两个线程,但我不知道如何“连接”它们,这样如果一个线程发生了什么事情,另一个线程也应该发生什么事情。

【问题讨论】:

  • scrape_links() 中的每次迭代都应该检查一些“标志”(全局变量、threading.Event、threading.Condition 等),如果设置了标志,则重新启动。数据库更新应该设置这个标志。
  • 请贴出两个函数的代码,包括线程部分。

标签: python python-3.x multithreading web-scraping


【解决方案1】:

嗯,解决这个问题的一种方法,可能是检查数据库状态,如果那里出现新的东西,你可以返回新的数据库对象,然后抓取链接,这可能会失去它的多线程功能,但这就是它的工作方式。

我认为这里不需要任何代码示例来让您理解我的意思。

【讨论】:

    猜你喜欢
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多