2017-12-09 2 views
-1

Wie kann ich eine Datei in Java mit Multithreading lesen? Es spielt keine Rolle, wenn es langsamer als einmal ist, muss ich es tun. So, zum Beispiel, wenn es 2 Threads gibt, liest der erste die erste Zeile und gleichzeitig liest der zweite die zweite Zeile; dann liest der erste die dritte Zeile und der zweite liest die vierte Zeile und sie lesen auf diese Weise seit dem Ende der Datei weiter. Wie kann ich das in Java implementieren?Verwenden mehrerer Threads zum Lesen der gleichen Datei in Java

+3

Sie müssten eine Sequenz einrichten, so dass der nächste Thread nicht gestartet wird, bis der letzte Thread abgeschlossen ist, es sei denn, Ihre Datei unterstützt den wahlfreien Zugriff – MadProgrammer

+0

Und wenn ich eine Binärdatei verwende, so dass es wahlfreien Zugriff unterstützt? – Bern

+1

Dann können Sie in der Theorie 'suchen' von etwas wie [' RandomAccessFile'] (https://docs.oracle.com/javase/8/docs/api/java/io/RandomAccessFile.html) verwenden, um das zu positionieren Lese den Zeiger dorthin, wo du willst. Aber Sie werden wahrscheinlich feststellen, dass jeder 'Thread' die Datei in seinem eigenen Kontext öffnen muss. – MadProgrammer

Antwort

1

Verwenden Sie einfach eine einzige BufferedReader, die zwischen den Threads freigegeben ist, und synchronisieren Sie sie beim Aufruf readLine().

Es ist völlig sinnlos.

+0

Ich verstehe, aber können Sie erklären, warum es sinnlos ist? – Gray

+0

Danke. Ich weiß nicht, warum mein Lehrer mir diese Übung gegeben hat. Ich dachte, es wäre sinnlos, und du hast es bestätigt. – Bern

Verwandte Themen