如何解决如何在 multiprocessing.shared_memory 中设置 ShareableList 列表的大小
我使用以下代码定义了一个 ShareableList()
来存储字符串:
from multiprocessing import shared_memory
global_memory = shared_memory.ShareableList([""] * 10,name='my_mem')
global_memory[0] = "hello I'm a long string"
它返回:
ValueError: bytes/str item exceeds available storage
我预料到了这一点,因为在 documentation 示例中发生了同样的情况:
>>> from multiprocessing import shared_memory
>>> a = shared_memory.ShareableList(['howdy',b'HoWdY',-273.154,100,None,True,42])
>>> [ type(entry) for entry in a ]
[<class 'str'>,<class 'bytes'>,<class 'float'>,<class 'int'>,<class 'nonetype'>,<class 'bool'>,<class 'int'>]
>>> a[2]
-273.154
>>> a[2] = -78.5
>>> a[2]
-78.5
>>> a[2] = 'dry ice' # Changing data types is supported as well
>>> a[2]
'dry ice'
>>> a[2] = 'larger than prevIoUsly allocated storage space'
Traceback (most recent call last):
...
ValueError: exceeds available storage for existing str
>>> a[2]
'dry ice'
len(a)
7
a.index(42)
6
a.count(b'howdy')
0
a.count(b'HoWdY')
1
a.shm.close()
a.shm.unlink()
del a # Use of a ShareableList after call to unlink() is unsupported
但我的问题是,如何为列表中的每个元素添加更多空间,以便我可以存储更大的字符串?
提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。