Gegeben ist die folgende Klasse Semaphore:
public class Semaphore
{
private int value;
public Semaphore(int init)
{
if(init
Damit wird kann also das Semaphore-Konzept realisiert werden.
Jetzt soll eine Thread-Klasse konstruiert werden.
Mit dieser ThreadKlasse soll die Folgende Ausgabe realisiert werden (Endlosschleife):
Ich bin der erste
Ich bin der zweite
Ich bin der erste
Ich bin der zweite
... (alternierend also)
Meine Lösung wäre bisher diese hier:
public class Threadclass extends Thread
{
private String name;
private Semaphore s1,s2;
private int status=0;
public Threadclass(String name)
{
this.name=name;
//nachfolgende Initialisierungen korrekt???
s1=new Semaphore(1);
s2=new Semaphore(1);
}
public void run()
{
while(true)
{
//hier kann Semaphre p() bzw v() genutzt werden
//um die gewünschte Ausgabe zu erzeugen
}
}
public static void main(String[] args)
{
Threadclass t1=new Threadclass("Ich bin der erste");
Threadclass t2=new Threadclass("Ich bin der zweite");
t1.start();
t2.start();
}
}
Allerdings weiß ich nicht, wie ich genau mit den Semaphoren umzugehen haben, also wann p() und wann v() verwenden? Ist es überhaupt richtig, hierfür 2 Semaphoren zu verwenden?
Danke für Ihre Hilfe