Frage

Wie kann ich Themen in Ada95 verwenden? Welche Funktionen kann ich erstellen verwenden, zerstören, zu stoppen und sie starten?

Wie kann ich Semaphore in dieser Sprache?

War es hilfreich?

Lösung

Ada Terminologie für einen Thread ist eine „Aufgabe“. Ada hat nicht Semaphore (als solche) direkt in die Sprache eingebaut, aber googeln für so etwas wie „Ada Semaphore“ sollte eine angemessene Anzahl von Treffern auftauchen. AdaPower.com , insbesondere, hat eine ganze Menge über parallele Programmierung in Ada (und was das betrifft, fast alle Arten von Programmierung in Ada).

Andere Tipps

Concurrency in die Sprache integriert, so dass Sie für spezifische Aufgaben bei Ada Syntax haben (das heißt Threads) und geschützte Objekte (das heißt, die mächtiger sind als Semaphore / mutexes / Bedingungsvariablen). Das macht viel einfacher (und weniger fehleranfällig) Programmierung Multi-Threaded-Anwendungen in Ada als in anderen Sprachen wie C / Java.

wird empfohlen, nicht zu verwenden Semaphore in Ada, geschützten Objekte sind viel leistungsfähiger (aber Sie können Objekte Semaphore leicht bauen mit geschützt, wenn erforderlich).

Einige kleine Syntaxbeispiele. Aufgaben (und geschützte Objekte) können statisch ...

sein
task My_Task;

task body My_Task is
begin
   -- Just print this to stdout and exit thread
   Ada.Text_IO.Put_Line("Hello, concurrent World!");
end;

... oder dynamisch erstellt

task type My_Task_Type(N : Natural);

task body My_Task_Type(N : Natural) is ...

...

T1 := new My_Task_Type(100);

abort T1;

Viel weniger ausführlich als andere Sprachen (und mehr maintenable)! Siehe ‚neuer‘ und ‚Abbruch‘ Schlüsselwörter für die Verwaltung von dynamischen Aufgaben sowie andere spezielle Pakete wie Ada.Synchronous_Task_Control.

Semaphore müssen sein ‚konstruiert‘ in der Regel (und nicht, maßgefertigt) unter Verwendung von 2-Dateien (Dateien Erweiterungen .adb und .ads), ausgefeilte Semaphore 3 Dateien benötigen (siehe ‚Concurrent und Echtzeitprogrammierung in Ada‘ Alan Burns und Andy Wellings). Es gibt keine Themen, sondern Aufgaben in Ada.

Für die Synchronisation in Ada mit Semaphore, können Sie einen Artikel auf meinem Blogspot sehen! http://3chevrons.blogspot.com/2010/02/semaphores- in-ada.html

ich ein Gefühl dafür bekommen, dass Sie versuchen Ada in der Parallelität in C und / oder Threads in Python zu beziehen. Doch Ada spricht etwas anders.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top