如何解决python的shared_memory自动删除的问题
最近用python来写一个读取共享内存的程序,发现每次程序退出后会自动把这个共享内存给删掉,而实际没有调用任何close或del的方法,查阅了下资料,发现了如下bug:
Issue 38119: resource tracker destroys shared memory segments when other processes should still have valid access - Python trackerhttps://bugs.python.org/issue38119
研究了半天,找到一个解决办法
python 3.8 - Shared memory deleted at exit - Stack Overflowhttps://stackoverflow.com/questions/64102502/shared-memory-deleted-at-exit
具体代码如下:
from multiprocessing import shared_memory,resource_trackershm_name = '/test_share'shm = shared_memory.SharedMemory(name=shm_name,create=False)resource_tracker.unregister(f'/{shm_name}', "shared_memory")
注:要在共享名称前还要加个符号/