gpt4 book ai didi

python - 具有 'internal'/'external' 守护线程的应用程序之间的功能差异

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:33 26 4
gpt4 key购买 nike

具有 3 个全部从多处理队列中提取的守护线程的应用程序和 4 个独立应用程序之间的线程操作功能是否存在差异:多处理队列/管道和 3 个守护线程应用程序从队列/管道应用程序读取

两个应用程序都没有使用阻塞/同步。在一天结束时,操作系统将决定何时允许线程运行以及运行多长时间。这里的功能是否有任何其他差异,或者它们本质上是相同的?

Generic Application (no synchronisation or blocking):

  • 'Stock Market Feed' Queue: StockTrade messages (dictonaries)
  • 'TradingStrategy' 1 Daemon Thread: Pull from queue, inspect messages and perform trades
  • 'TradingStrategy' 1 Daemon Thread: Pull from queue, inspect messages and perform trades
  • 'TradingStrategy' 1 Daemon Thread: Pull from queue, inspect messages and perform trades

替代架构:

Feed Application (no multi-threading):

  • 'Stock Market Feed' Queue or Pipe: StockTrade messages (dictonaries). Can a Queue be accessed from another outside process? I know a named pipe can but can a queue?

交易应用程序(无多线程):

  • 'TradingStrategy': Interacts with feed (pipe?/queue), inspect messages and perform trades

交易应用程序(无多线程):

  • 'TradingStrategy': Interacts with feed (pipe?/queue), inspect messages and perform trades

交易应用程序(无多线程):

  • 'TradingStrategy': Interacts with feed (pipe?/queue), inspect messages and perform trades

最佳答案

是的,这两个选项完全不同。但试图解释其中的差异很快就会变得复杂。您应该研究并阅读线程和进程之间的区别。先把它牢记在心。

现在,给定您的特定场景,假设“多处理队列”实际上是指进程的一个线程中的 python 队列实例,因为队列与所有工作线程位于同一进程内,工作人员将能够访问和共享同一个队列实例。

然而,当工作人员都是独立的进程时,他们无法通过共享内存访问队列,并且需要某种形式的进程间通信才能访问该队列。

在实践中,我会想像 redis 这样的事情或 zeromq成为你的队列,然后构建一个 python 程序来与之对话,然后根据需要扩展尽可能少或尽可能多的副本。

关于python - 具有 'internal'/'external' 守护线程的应用程序之间的功能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40166633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com