AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Threads...

Ein Thema von calibra301 · begonnen am 7. Feb 2018 · letzter Beitrag vom 7. Feb 2018
Antwort Antwort
calibra301

Registriert seit: 20. Mär 2009
63 Beiträge
 
Delphi XE8 Professional
 
#1

Threads...

  Alt 7. Feb 2018, 05:58
Hallo,

hab ein Problem mit Threads / Datenzugriff.

Ich hab im Mainform ein array of Objekt welches Daten beinhaltet.
Dann werden 4 Instanzen eines Ausgabethreads gestartet. Diese sollen sich Ihre Daten
aus dem Array of Object holen.
in jeder execute läuft eine 0..100 Schleife welche in den Array[x] guckt und ggf. dann was tut.

Geht das / darf man das überhaupt so machen ? Mir sind die Hintergründe nicht ganz klar.

Danke und Gruss
Calli
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
7.283 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Threads...

  Alt 7. Feb 2018, 07:07
Solange du auf alle Daten in dem Array ausschließlich lesend zugreifst (also auch keine Methoden auf den Objekten aufrufst, die Felder des Objekts modifizieren usw.) und das Array auch derweil nicht woanders schreibend angefasst wird, kannst du ohne Absicherung in den Threads darauf zugreifen.

Wenn irgendwo Schreibzugriffe parallel passieren, müsstest du das absichern, z.B. mit einem TMultiReadExclusiveWriteSynchronizer, TMonitor, kritischen Sektionen oder ähnlichen Mechanismen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.314 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Threads...

  Alt 7. Feb 2018, 13:11
Ich würde aber auch lesende Zugriffe absichern. Denn sollte mal was an dem Programm geändert werden und doch schreibend zugegriffen werden, bist du jetzt schon auf der sichern Seite.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
3.918 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Threads...

  Alt 7. Feb 2018, 15:34
Das ist sehr allgemein...

ggf. würde ich eher eine Queue nehmen, die Abgearbeitet wird... Aber das kommt darauf an, was Du machen willst...

ggf. ist es mit 4 Threads und einer Absicherung langsamer als mit einem Thread... Kann man nicht genau sagen..

Mavarik
  Mit Zitat antworten Zitat
Wosi

Registriert seit: 29. Aug 2007
57 Beiträge
 
#5

AW: Threads...

  Alt 7. Feb 2018, 15:39
Ich würde aber auch lesende Zugriffe absichern. Denn sollte mal was an dem Programm geändert werden und doch schreibend zugegriffen werden, bist du jetzt schon auf der sichern Seite.
Was ist der Sinn von Multithreading wenn du zur Sicherheit alle bereits thread-sicheren Zugriffe nochmal absicherst? Damit bremst du das System doch bloß aus.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
3.918 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Threads...

  Alt 7. Feb 2018, 15:44
Was ist der Sinn von Multithreading wenn du zur Sicherheit alle bereits thread-sicheren Zugriffe nochmal absicherst?
Es geht Ihm ja gerade um die nicht thread-sicheren Zugriffe...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf