Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Große Textdateien spitten (https://www.delphipraxis.net/194214-grosse-textdateien-spitten.html)

nahpets 29. Okt 2017 21:23

AW: Große Textdateien spitten
 
Zitat:

Zitat von muhael (Beitrag 1384517)
und wenn 4 Threads gleichzeitig 4 Zeilen bearbeiten und dann gleichzeitig die Liste abrufen wollen gibts ja probleme mit dem Zugriff darauf

Ja, aber das ist unabhängig davon, ob die Threads nun jeweils eine eigene Datei lesen oder in einer Datei jeweils die vierte Zeile.

himitsu 30. Okt 2017 10:15

AW: Große Textdateien spitten
 
Darum liest nur Einer die Datei und gibt die Zeilen an die Threads weiter. (1)
Oder man macht z.B. eine CriticalSection um den Lesebefehl, bei jedem Thread. (2)



Außerdem ist es blöde ungünstig Einzelzeilen weiterzureichen/zu lesen.

Wenn sich jeder Thread (2) mehrere Zeilen holt und sie dann verarbeitet, bis er sich den nächsten Pack holt,
oder wenn man mehrere Zeilen z.B. in eine Liste/Array einfügt und diese Listen dann an einen der Threads übergibt (1 ... also Liste abarbeiten und dann Freigeben)
oder wenn man jeder Thread schon eine Liste/Array hat und der Lesethread diese Liste dann regelmäßig mit mehreren Zeilen befüllt, wenn die Liste leer oder zu leer ist (2) ...
> So kann man die Sperrenden Zugriffe verringern.

In neueren Delphis gibt es nicht nur Threads, sondern auch Tasks, da kann man z.B. jeweils 100 Zeilen Lesen und dafür erstellt man eine Task und diese Tasks lässt man dann z.B. in 4 Threads abarbeiten.

Glados 30. Okt 2017 11:11

AW: Große Textdateien spitten
 
Zitat:

In neueren Delphis gibt es nicht nur Threads, sondern auch Tasks, da kann man z.B. jeweils 100 Zeilen Lesen und dafür erstellt man eine Task und diese Tasks lässt man dann z.B. in 4 Threads abarbeiten.
Wie wäre es denn mit der For-Schleife aus der PPL?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz