f911ba985a
From-SVN: r102074
60 lines
1.1 KiB
Java
60 lines
1.1 KiB
Java
public class SyncronizedTest
|
|
implements Runnable
|
|
{
|
|
public static int count = 0;
|
|
String _name;
|
|
|
|
public SyncronizedTest(String name)
|
|
{
|
|
_name = name;
|
|
}
|
|
|
|
public void run()
|
|
{
|
|
if (_name.equals("timer")) {
|
|
try {
|
|
Thread.sleep(10000);
|
|
} catch (InterruptedException e){}
|
|
System.out.println("FAILED: timer triggered");
|
|
System.exit(1);
|
|
}
|
|
try {
|
|
count++;
|
|
|
|
synchronized(this) {
|
|
notifyAll();
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println("FAILED: receiver: " + e);
|
|
System.exit(1);
|
|
}
|
|
}
|
|
public static void main(String args[])
|
|
{
|
|
try {
|
|
SyncronizedTest tester = new SyncronizedTest("tester");
|
|
Thread tester_thread = new Thread(tester);
|
|
|
|
SyncronizedTest timer = new SyncronizedTest("timer");
|
|
Thread timer_thread = new Thread(timer);
|
|
timer_thread.start();
|
|
|
|
synchronized(tester) {
|
|
tester_thread.start();
|
|
tester.wait();
|
|
}
|
|
|
|
if (0 == count)
|
|
throw new Exception("Thread did not run.");
|
|
|
|
tester_thread.join();
|
|
|
|
System.out.println("PASSED: count="+count);
|
|
System.exit(0);
|
|
} catch (Exception e) {
|
|
System.out.println("FAILED: " + e);
|
|
System.exit(1);
|
|
}
|
|
}
|
|
}
|