我正在使用Python实现一个多进程程序,每个子进程都需要读取文件的一部分。由于从磁盘读取文件很耗费时间,我希望只读取一次并将其放入共享内存中。
1. 如果我使用mmap,它可以与fork一起使用,但我找不到在multiprocessing模块中共享mmap文件的方法。
2. 如果我将文件读入str,并将字符串存储在sharedctypes.RawArray('c',str)中,如果str中有\ 0,则可能会出现错误,生成的RawArray是文件的截断。
你有什么想法吗?
1. 如果我使用mmap,它可以与fork一起使用,但我找不到在multiprocessing模块中共享mmap文件的方法。
2. 如果我将文件读入str,并将字符串存储在sharedctypes.RawArray('c',str)中,如果str中有\ 0,则可能会出现错误,生成的RawArray是文件的截断。
你有什么想法吗?
numpy.memmap
以'r+'
模式打开该文件。 - Saullo G. P. Castro