有没有一种安全的方法可以从python中的线程创建子进程?
我正在使用一些现有代码,这些代码创建了许多不同的工作线程,然后这些工作线程通过子进程/多进程调用一些shell脚本。从我所看到的情况来看,这是不允许的,因为互斥可以在exec发生之前被嵌入子进程的解释器中。这是一个合理的担忧吗?如果是这样的话,是否有某种python原语可以做正确的事情并执行fork/exec,而不会在其间使用任何不安全的东西有没有一种安全的方法可以从python中的线程创建子进程?,python,multithreading,Python,Multithreading,我正在使用一些现有代码,这些代码创建了许多不同的工作线程,然后这些工作线程通过子进程/多进程调用一些shell脚本。从我所看到的情况来看,这是不允许的,因为互斥可以在exec发生之前被嵌入子进程的解释器中。这是一个合理的担忧吗?如果是这样的话,是否有某种python原语可以做正确的事情并执行fork/exec,而不会在其间使用任何不安全的东西 谢谢我不这么认为。您完全可以使用日志记录模块创建死锁,该模块是线程安全的,因此可以执行一些锁定和子进程/多进程处理,所以我想说python并没有为您处理这
谢谢我不这么认为。您完全可以使用日志记录模块创建死锁,该模块是线程安全的,因此可以执行一些锁定和子进程/多进程处理,所以我想说python并没有为您处理这个问题。我很惊讶C中没有实现某种模块/原语,它会立即背对背地调用fork和exec,这不会造成死锁。多处理所做的远不止是生成一个子进程,因此不可能像您所想的那样。这是叉子的一个设计缺陷。处理这个问题最简单的方法是避免分叉有多个线程的进程。你有没有就此得出结论。有时,我也会因为线程死锁而遇到同样的问题。多处理模块对于me来说不是一个好选项,因为子作业参数太大或不可酸洗