HI ! Ich muss für ein Praktikum zum Thema Systemprogrammierung eine Aufgabe bearbeiten und hab bisher noch nicht ganz den Einstieg gefunden. Nur ein grobes Verständnis wozu Threads dienen und was man mit ihnen erreichen will
Kann jmd von euch mir sagen, wie ich den Einstieg in diese Aufgabe wagen kann, bzw wie ich Schritt für Schritt vorgehen sollte ?
Für manche von euch mag das banal sein, aber ich betrete hiermit programmiertechnisches Neuland![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
C++-(Grund)Kenntnisse sind da...
Die Aufgabe habe ich angefügt![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
VIelen Dank im Voraus, Dave
_____________________________________
Motivation
Objektorientierte Programmiersprachen wie z.B. Java realisieren Nebenläufigkeit in Programmen mittels Thread-Objekten. Bei Java Thread-Objekten handelt es sich um Instanzen einer von der abstrakten Klasse Thread abgeleiteten Klasse. Die abstrakte Thread-Klasse stellt eine Methode für die Thread-Logik bereit, die vom Entwickler in einer eigenen abgeleiteten Klasse überschrieben werden muss. Die abstrakte Klasse Thread in Java stellt unter anderem die folgenden Methoden zur Verfügung:
- run(): Methode, die in einer abgeleiteten Klasse überschrieben werden muss und die Thread-Logik enthält.
- suspend(): unterbricht den Thread, bis er mittels
- resume(): reaktiviert wird.
Aufgabenstellung
Kapseln Sie die Win32-Threadfunktionen (CreateThread(), TerminateThread(), etc.) von Visual C++ in Anlehnung an obige Ausführungen möglichst vollständig in einer Klasse. Die für Win32-Threads benötigte Thread-Funktion kann im Konstruktor übergeben werden. Zusätzlich zu den oben Dargestellten soll eine Methode waitForEnd () realisiert werden, die es bei Java-Threads nicht gibt. Der Aufrufer wird hierbei so lange blockiert bis der Thread beendet ist.
Beachten Sie, dass durch die API-Kapselung die Komplexität der Thread-Programmierung verringert werden soll. Es ist nicht verlangt eine abstrakte Klasse wie in Java zu schreiben.
Zum Testen der Klasse soll der arithmetische Ausdruck 2^4^2+cos(0.5)+5! berechnet werden. Zeichnen Sie zunächst einen DAG (siehe Skript ALD Kapitel 14.6) unter Berücksichtigung der Operatorpräzedenzen. Es sollen hierbei möglichst viele Berechnungen parallel ablaufen.
Kann jmd von euch mir sagen, wie ich den Einstieg in diese Aufgabe wagen kann, bzw wie ich Schritt für Schritt vorgehen sollte ?
Für manche von euch mag das banal sein, aber ich betrete hiermit programmiertechnisches Neuland
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
C++-(Grund)Kenntnisse sind da...
Die Aufgabe habe ich angefügt
![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
VIelen Dank im Voraus, Dave
_____________________________________
Motivation
Objektorientierte Programmiersprachen wie z.B. Java realisieren Nebenläufigkeit in Programmen mittels Thread-Objekten. Bei Java Thread-Objekten handelt es sich um Instanzen einer von der abstrakten Klasse Thread abgeleiteten Klasse. Die abstrakte Thread-Klasse stellt eine Methode für die Thread-Logik bereit, die vom Entwickler in einer eigenen abgeleiteten Klasse überschrieben werden muss. Die abstrakte Klasse Thread in Java stellt unter anderem die folgenden Methoden zur Verfügung:
- run(): Methode, die in einer abgeleiteten Klasse überschrieben werden muss und die Thread-Logik enthält.
- suspend(): unterbricht den Thread, bis er mittels
- resume(): reaktiviert wird.
Aufgabenstellung
Kapseln Sie die Win32-Threadfunktionen (CreateThread(), TerminateThread(), etc.) von Visual C++ in Anlehnung an obige Ausführungen möglichst vollständig in einer Klasse. Die für Win32-Threads benötigte Thread-Funktion kann im Konstruktor übergeben werden. Zusätzlich zu den oben Dargestellten soll eine Methode waitForEnd () realisiert werden, die es bei Java-Threads nicht gibt. Der Aufrufer wird hierbei so lange blockiert bis der Thread beendet ist.
Beachten Sie, dass durch die API-Kapselung die Komplexität der Thread-Programmierung verringert werden soll. Es ist nicht verlangt eine abstrakte Klasse wie in Java zu schreiben.
Zum Testen der Klasse soll der arithmetische Ausdruck 2^4^2+cos(0.5)+5! berechnet werden. Zeichnen Sie zunächst einen DAG (siehe Skript ALD Kapitel 14.6) unter Berücksichtigung der Operatorpräzedenzen. Es sollen hierbei möglichst viele Berechnungen parallel ablaufen.