Semaphore

Status
Nicht offen für weitere Antworten.

tanja

Mitglied
In Java gibt es eine Klasse Semaphore. Dadurch bietet sie eine möglichkeit einen Wechselseitigen Ausschluss zu realisieren.

Ich brauche hier nun ein java programm, dass eine Autofabrik simulieren.Dazu sollte eine abstracte Klasse KFZModellAuftrag (von Thread abgeleitet) implementiert wird und es sollte verschiedene KFZ modelle abgeleitet werden.Ausserdem muss man auch von von der Klasse Semaphore mehrere Klassen abgeleitet werden, um die benötigten Maschinen also(arbeitsschritte für die produktion von KFZModell) zu simulieren.

Die Idee ist nun, dass in der Parameterliste des Konstruktors des KFZ-Modells
Instanzen der ben¨otigten Maschinen ¨ubergeben werden. Auf diese Weise kann auf
einer Maschine (abgeleitet von Semaphore) ein Produktionsschritt eines Modells
abgearbeitet werden (sleep(. . . ) einfügen).

Kann man 5 aufträge mit mindestens 3 KFZModellen auf 4 maschinen produziert werden? Das Problem ist mehrere aufträgen kann ich hintereinander nicht realisieren..
 

tanja

Mitglied
für Semaphore habe ich so ein Programmstück, damit man besser kapieren was Semaphore ist.

Java:
class MeinThread extends Thread {
private Semaphore sem; /* Semaphor−Objekt */
private String name;
MeinThread(String name, Semaphore sem) {
this.name = name; this.sem = sem;
}
public void run() {
try {
sem.acquire();
System.out.println(name+” −> betritt kritischen Bereich”);
sleep(1800); /* Kritischer Bereich */
System.out.println(name+” <− verl¨asst kritischen Bereich”);
sem.release () ;
} catch (Exception e) { }
} }
class Beispiel {
public static void main(String[] args) {
Semaphore s = new Semaphore(1);
MeinThread t1 = new MeinThread(”Thread 1”,s);
MeinThread t2 = new MeinThread(”Thread 2”,s);
t1. start () ; t2. start () ;
} }}
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Ich weiß nun nicht genau, was/wie/wo das Problem liegt, aber bei einer solchen Sache, sollte man das erst einmal sauber auf Papier modellieren, wie die Zusammenhänge sind, bzw. wie man sie gestalten möchte.

Du hast also eine Fabrik mit diversen Maschinen, deren Zugriff über ein Semaphor geregelt wird. Das klingt soweit ok, weil nur jeweils einer an der Maschine werkeln kann.
Dann gibt es verschiedene Kfz-Modelle, die wohl aus einer Reihe von Arbeitsschritten bestehen. Diese Arbeitsschritte könnte man mit Maschinenzugriffen gleichsetzen. Klingt für mich spontan nach einem Thread: Kfz herstellen. Dieser geht der Reihe nach seine Arbeitsschritte durch und belegt dadurch Maschinen. Wenn eine Maschine bereits belegt ist, muss er halt warten.
Ein Auftrag wäre dann wohl eine Sammlung solcher Herstellungsprozesse.

So klingt das Problem derzeit für mich.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben