NEW_IN_JAVA
Grünschnabel
Hi Leute
brauche Hilfe bei folgenden BSP.
Aufgabenstellung:
3 Prozesse greifen in einer Schleife auf einem gemeinsamen Bereich b zu.
Synchronsieren Sie die Prozesse durch Semaphore so, dass der Zugriff stets in der Reihenfolge p1,p2,p3 (zyklisch) erfolgt.
Ich hab das Problem wie ich die Schleife zur gemeinsamen Bereich b mache.
[BIN ANFÄNGER IN JAVA]
brauche Hilfe bei folgenden BSP.
Aufgabenstellung:
3 Prozesse greifen in einer Schleife auf einem gemeinsamen Bereich b zu.
Synchronsieren Sie die Prozesse durch Semaphore so, dass der Zugriff stets in der Reihenfolge p1,p2,p3 (zyklisch) erfolgt.
Code:
import java.util.concurrent.Semaphore;
import java.lang.Thread;
public class SemaphoreDemo
{
static Semaphore semaphore = new Semaphore( 2, true );
static Runnable r = new Runnable() {
public void run() {
while ( true ) {
try
{
semaphore.acquire();
System.out.println( "Thread=" + Thread.currentThread().getName() +
", Available Permits=" + semaphore.availablePermits() );
Thread.sleep( 1000 );
}
catch ( InterruptedException e ) {
e.printStackTrace();
}
finally {
semaphore.release();
}
}
}
};
public static void main( String[] args )
{
new Thread( r ).start();
new Thread( r ).start();
new Thread( r ).start();
}
}
Code:
Ausgabe:
Thread-0
Thread-1
Thread-2
Ich hab das Problem wie ich die Schleife zur gemeinsamen Bereich b mache.
[BIN ANFÄNGER IN JAVA]
Zuletzt bearbeitet: