Python 如何设计多线程并读取相同的输入

Python 如何设计多线程并读取相同的输入,python,multithreading,Python,Multithreading,我想设计我的平台来计算一些东西,结构是 一个大文件(可能是5gb或10gb) 20线程并执行不同的算法 我目前的结构是20线程,自行打开大文件 然后逐行读取,以按每个线程执行 但是,我想设计一个新的结构,只打开一次大文件, 每个线程读取相同的内存块 我调查了mmap和multiprocess.array,但仍然不知道如何安全、方便地应用它 有人能帮我吗?谢谢。打开文件时生成的底层文件句柄只能用于读取文件的一个点。不能使用同一文件句柄读取多个偏移量 因此,您应该使用一个线程读取文件,而其他线程读取

我想设计我的平台来计算一些东西,结构是

一个大文件(可能是5gb或10gb) 20线程并执行不同的算法

我目前的结构是20线程,自行打开大文件 然后逐行读取,以按每个线程执行 但是,我想设计一个新的结构,只打开一次大文件, 每个线程读取相同的内存块

我调查了mmap和multiprocess.array,但仍然不知道如何安全、方便地应用它


有人能帮我吗?谢谢。

打开文件时生成的底层文件句柄只能用于读取文件的一个点。不能使用同一文件句柄读取多个偏移量


因此,您应该使用一个线程读取文件,而其他线程读取第一个线程使用文件缓冲区生成的队列。

您的意思是我将文件读取到内存,然后将内存传递到每个线程吗?是的,但不是内存中的整个文件,一个又一个缓冲区导致内存过度消耗。请告诉我们您的一些尝试。我将使用mmap和map文件仅用于读取,这样在线程之间共享将是安全的。