Das ist Unsinn, was du da machst. Mit mehreren Threads aus einer Datei zu lesen bringt keinen Geschwindigkeitsvorteil, weil die Festplatte auch immer nur von einer Stelle lesen und so nur einen Thread jeweils bedienen kann.
Genau das löst das Auslesen per MMF. Und der Reader lässt sich sehr einfach für das Auslesen der jeweils 4 Zeichen modifizieren.
Aber davon abgesehen gibt es vermutlich eine bessere algorithmische Lösung für die Aufgabe. Was passiert denn in den Threads sonst noch?