我有一个场景,我在主进程中有一个循环,不断创建新对象。我想在不同的进程中对每个创建的对象进行一些处理。
我尝试创建一个共享字典,我不断填充新对象,并创建了一个过程来循环字典中的对象。
有没有更好的方法可以做到这一点? 因为我的资源有限,而且上面的方法有点慢。
也许每次创建对象时创建一个单独的工作线程会更好? 如果是这样,我该如何实现这一点?
谢谢
进程是比线程更"重"的实体。进程包含一个或多个线程。
通常,只有当我预见到在与生成数据的处理器(分布式系统(不同的处理器上处理数据的可能性时,我才会选择进程而不是线程。如果数据生成和数据处理(总是!(在同一处理器上进行,则使用线程更有效(特定于线程的数据共享和同步原语更简单,因为操作系统不需要考虑其他现有进程(。
线程数取决于硬件。您可以在此处使用线程池来获得一些灵活性。
看看生产者-消费者,线程池,IPC,并将这些概念映射到python语言功能(多处理,ThreadPoolExecutor(。