Java Tutorial/Thread/Semaphore — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 17:44, 31 мая 2010
A semaphore based coordination
import java.util.concurrent.Semaphore;
public class Main {
public static void main(String args[]) throws Exception {
Semaphore sem = new Semaphore(1, true);
Thread thrdA = new Thread(new MyThread(sem, "Message 1"));
Thread thrdB = new Thread(new MyThread(sem, "Message 2"));
thrdA.start();
thrdB.start();
thrdA.join();
thrdB.join();
}
}
class MyThread implements Runnable {
Semaphore sem;
String msg;
MyThread(Semaphore s, String m) {
sem = s;
msg = m;
}
public void run() {
try {
sem.acquire();
System.out.println(msg);
Thread.sleep(10);
sem.release();
} catch (Exception exc) {
System.out.println("Error Writing File");
}
}
}