在Python中抽象线程和多处理?
Python中是否有抽象线程和多处理的模块?我想在将来有一个在它们之间切换的选项 线程和多处理模块已经为此使用了类似的接口。如果不支持,多处理实际上会退回到在Python中抽象线程和多处理?,python,Python,Python中是否有抽象线程和多处理的模块?我想在将来有一个在它们之间切换的选项 线程和多处理模块已经为此使用了类似的接口。如果不支持,多处理实际上会退回到线程化模块 您可以使用import multiprocessing as something和import threading as something在这两种看不见的方式之间切换 请注意,两者之间的数据共享是不同的,这可能会造成潜在的陷阱。正如jdi所指出的线程化和多处理模块已经为此使用了类似的接口。如果不支持,多处理实际上会退回到线程化模
线程化模块
您可以使用import multiprocessing as something
和import threading as something
在这两种看不见的方式之间切换
请注意,两者之间的数据共享是不同的,这可能会造成潜在的陷阱。正如jdi所指出的线程化和多处理模块已经为此使用了类似的接口。如果不支持,多处理实际上会退回到线程化模块
您可以使用import multiprocessing as something
和import threading as something
在这两种看不见的方式之间切换
请注意,两者之间的数据共享是不同的,这可能会造成潜在的陷阱。正如jdi在上一条语句中所指出的那样。您必须坚持只使用进程
,并避免使用一些共享数据容器,因为线程没有管理器<代码>进程
与线程
共享相同的api。另一个问题是,即使您避免数据共享并通过消息(队列、作业启动参数和返回值等)执行所有操作,多处理
也只能处理可拾取的值。如果您不确定最后想要哪一个,那么首先编写多处理的代码几乎总是值得的。最后一条语句的粗体部分。您必须坚持只使用进程
,并避免使用一些共享数据容器,因为线程没有管理器<代码>进程
与线程
共享相同的api。另一个问题是,即使您避免数据共享并通过消息(队列、作业启动参数和返回值等)执行所有操作,多处理
也只能处理可拾取的值。如果你不确定最终想要哪一个,那么首先为多处理编写代码几乎总是值得的。你是否担心接口只有95%的兼容性而不是100%,或者你认为你需要某种接口/协议/抽象基类来抽象事物,比如,Java?您是否担心接口的兼容性只有95%而不是100%,或者您是否认为需要某种接口/协议/抽象基类来抽象事物,就像在Java中一样?