/etc/profi中的子进程VS函数VS并行程序

2024-04-20 15:10:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经做了3个python代码。我用的是覆盆子皮

  • 代码1-按按钮打印条形码
  • 代码2-将条形码发送到服务器
  • 代码3-运行在后台记录数据,以防网络故障,并重新发送数据,一旦互联网上。你知道吗

注意:所有这些代码都在while(True)循环中运行

现在,我必须并行运行这三个程序。我已经读到了我有三种选择

SubProcess-我使用SubProcess()将python代码导入到一个代码中并运行它们

使用/etc/profile-我在sudo nano /etc/profile末尾的下面一行

sudo python3 (link to code1) & sudo python3 (link to code3)

这运行良好…虽然我已经陷入了一个无限的循环,有时,不觉得很舒服。你知道吗

定义函数-我将两个程序定义为3个代码中最大的一个,并以非常快的间隔运行它们。你知道吗

现在所有这3个确实给了我一些错误的输出这里和那里不时。但我想知道…哪种方式是并行运行多个程序的最好、最有效的方式


Tags: to代码程序服务器覆盆子方式etcsudo
1条回答
网友
1楼 · 发布于 2024-04-20 15:10:30

选择1是最普遍的。这就是这类程序的工作原理—它们在不同的进程中工作,甚至可能在不同的机器或容器上工作,并通过网络/IPCAPI相互协作。你知道吗

选项2几乎相同,但没有意义。^{} is invoked only for login shells because that is its specific purpose.您需要一个选项来在不同的用户下启动程序。如果你打算重新启动程序,为什么不使用同样的机制来第一次启动呢?你知道吗

方案3。如果你在一个进程中运行不同功能的应用程序,那就太麻烦了。你在时间上有问题,哪个函数在哪个点运行。您可以使用多线程,但对于您的用例来说可能太复杂了。不过,如果第二个应用只是提交网络请求,那么这是一个非常可行的解决方案。代码2和代码3将是同一个应用程序。在第二个线程中运行它,它会将数据收集到本地sqlite数据库,并发送尚未标记为已提交的消息(选项1也有同样的想法)。你知道吗

相关问题 更多 >