multiprocessing.manager().dict是什么类型,如何遍历,又如何查询关键字,其它相关的函数有哪些
时间: 2024-02-12 10:07:39 浏览: 31
`multiprocessing.Manager().dict` 是一个由 `multiprocessing` 模块提供的进程安全的字典类型。它可以在多个进程中共享和修改,而不必担心由于并发访问而出现的数据竞争问题。
遍历 `Manager().dict` 可以使用字典的方法,例如 `keys()` 和 `values()`,也可以使用 `items()` 方法同时获取键和值。示例代码如下:
```python
from multiprocessing import Manager, Process
def worker(d):
for k, v in d.items():
print(f"{k}: {v}")
if __name__ == "__main__":
with Manager() as manager:
d = manager.dict()
d["foo"] = "bar"
d["spam"] = "eggs"
p = Process(target=worker, args=(d,))
p.start()
p.join()
```
查询关键字同样可以使用字典的方法,例如 `get()` 和 `__contains__()`。示例代码如下:
```python
from multiprocessing import Manager, Process
def worker(d):
print("foo" in d)
print(d.get("foo", "not found"))
print(d.get("baz", "not found"))
if __name__ == "__main__":
with Manager() as manager:
d = manager.dict()
d["foo"] = "bar"
p = Process(target=worker, args=(d,))
p.start()
p.join()
```
除了 `keys()`、`values()`、`items()`、`get()` 和 `__contains__()` 方法外,`Manager().dict` 还支持其它常见的字典方法,例如 `pop()`、`clear()`、`update()` 等。需要注意的是,由于 `Manager().dict` 是进程安全的,所以它的操作会比普通字典稍微慢一些。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)