-         

Ergebnis 1 bis 3 von 3

Thema: Multithreading mit 10 Roboter

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2007
    Beiträge
    7

    Multithreading mit 10 Roboter

    Anzeige

    Hallo,

    Ich versuche gerade eine Applikation zu realisieren mit der 10 Roboter über TCP/IP gesteuert werden können. Hat jemand eine Idee wie ich es realisieren kann,. dass der Server nicht blockiert so lange ein Roboter einen Befehl ausführt?

    Mein Vorschlag ist, dass es einen Serverthread gibt, der Nachrichten empfängt und Flags setzt zu welchem Roboter diese Nachrichten gehören.
    Dann gibt es 10 Roboterthreads, die sich die Nachricht abholen und die Flags zurücksetzen. Somit wäre kein Roboter von einem anderen blockiert und die Roboter nur solange wie ein Befehl an die Roboter über Bluetooth geschickt wird.

    Ist dies realisierbar oder hat jemand eine bessere Lösung?

    Ich verwende Visual C++.

    mfg

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    43
    Beiträge
    1.517
    das haben wir gerade in der mache. Oder zu mindestens kann man es auch da für verwenden. Lesen und melden.

    Links in der Fußzeile.

    Gruß
    Home
    P: Meine Tochter (06.11.07) und Link
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    50
    Beiträge
    1.195
    Einfache Lösung:

    drei Threads, zwei Queues:
    T0: Hauptapplikation
    T1: SendeThread
    T2: Empfangsthread
    Q1: Sendequeue
    Q2: Empfangsqueue

    Zum Senden stellt T0 eine Nachricht in Q1. Das geht sehr schnell und T0 kann sofort weiter arbeiten. In der Nachricht ist codiert, für welchen Bot sie bestimmt ist. Plus eine fortlaufende ID um nachher das Ergebnise zuordnen zu können.

    Zum Lesen schaut T0 in Q2 nach, ob eine Nachricht vorhanden ist. Wenn ja wird die entnommen und bearbeitet. In der Nachricht codiert ist, von welchem Bot sie stammt. Plus die ID zu welchem Kommando sie gehört.

    T1 liest Nachrichten aus Q1 und versendet die an die entsprechenden Bots.

    T2 emfängt Nachrichten von den Bots und stellt die in Q2 ein.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •