【发布时间】:2013-07-04 20:18:32
【问题描述】:
我有一个运行多个线程的 Python (2.7) 应用程序。现在我想在我的子线程中更新一个字典,并在我的母线程中使用它的更新内容,而不使用 join()。我可以这样做吗?我不想等到我的孩子终止在我的母亲线程中使用字典的数据。
我该怎么做?
【问题讨论】:
-
我怀疑这个问题的答案取决于您在字典中输入的内容以及访问方式。字典操作通常是线程安全的(意味着字典始终是完整的,不会由于线程切换而部分更新),但这并不一定意味着您的两个线程将在没有任何同步的情况下看到正确的数据。你能详细说明一下吗?
-
另外,您使用的是线程还是进程?你的文字说线程,但你的标签说多处理。
-
@Blckknght 进程避免 GIL 阻塞并发线程的执行。
-
@Blckknght 我将 MAC 地址数组存储为键,并将每个 MAC 地址的 TDMN 插槽存储为字典中的值。我在一个单独的过程中从网上下载信息,以免中断我的工作过程。我必须每 600 秒(至少坐着)将成员 mac 列表与云同步一次。
标签: python python-2.7 dictionary multiprocessing