Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Nox

Supermoderator

  • »Nox« ist der Autor dieses Themas

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

1

31.05.2007, 09:30

Multithreading - Methodenaufrufe beschränken

hi,

es geht um ein allgemeines Problem und ich würde gerne eure Erfahrungen in Bezug auf dieses Thema wissen.

Situation:

Es geht um eine Klasse auf die von mind. 2 Threads aus zugegriffen wird. Die Datenelemente (in dem Fall Listen), auf die dabei von beiden Seiten aus zugegriffen wird, sind schon durch eine eigene Listenklasse (SecureList) abgesichert.

Nun habe ich aber folgendes Problem:

Ich will sicher stellen, dass bestimmte Methoden nur von einer Seite aus aufgerufen werden können.

Mögliche Lösung:

Ich fange an alle Klassen, die diese Problematik aufweisen, aufzuteilen. Das wäre eindeutig eine Möglichkeit, würde aber einen erheblichen Aufwand bedeuten und der Übersichtlichkeit wohl eher weniger dienlich sein.

Was habt ihr für Lösungsvorschläge/-ansätze/-strategien?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

31.05.2007, 09:59

Willst du das nur ein bestimmter Thread auf diese Methoden zugreifen kann oder immer nur ein bestimmter Thread auf die Methode Zugriff hat?

Im ersten Fall könntest du Threads bei der Klasse registrieren und beim Zugriff auf die Identität des Threads testen.
Beim zweiten Fall reicht ein einfaches "Locken" der Funktion.
@D13_Dreinig

Nox

Supermoderator

  • »Nox« ist der Autor dieses Themas

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

31.05.2007, 11:23

Ersteres. Also die Methode X soll nur von Thread 1 aufgerufen werden können bzw. nur von einer anderen bestimmten Methode Namens SektorThread. Keine andere soll auf diese Methode ein Zugriff haben. Selbst die Klasse zu der die Methode gehört nicht.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

31.05.2007, 12:08

Du könntest die Methode in eine Struktur auslagern und das Objekt direkt vom Thread sperren lassen und zwar die gesamte Lebensdauer des Objektes lang.
Die Klasse hat dann eine Aggregation mit deiner Hilfsstruktur und nur der von dir festgelegte Thread kann auf die Methode zugreifen.
@D13_Dreinig

Nox

Supermoderator

  • »Nox« ist der Autor dieses Themas

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

31.05.2007, 12:46

richtig. dafür müsste ich das eben auslagern :-/
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

31.05.2007, 13:15

Und? Bekommst ja dadurch keine Einschränkung.
@D13_Dreinig

Werbeanzeige