mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 12:39:43 +08:00
1292bc9fe8
* libjava.lang/SyncTest.java: New file. * libjava.lang/SyncTest.out: New file. * libjava.lang/SyncTest.xfail: New file. From-SVN: r44495
32 lines
698 B
Java
32 lines
698 B
Java
// Test atomic increment via synchronized blocks.
|
|
public class SyncTest implements Runnable {
|
|
static int counter;
|
|
|
|
public void run() {
|
|
for (int n = 0; n < 1000000; n++)
|
|
synchronized (SyncTest.class) {
|
|
counter++;
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
SyncTest test = new SyncTest();
|
|
Thread[] thr = new Thread[4];
|
|
|
|
for (int n = 0; n < thr.length; n++) {
|
|
thr[n] = new Thread(test);
|
|
thr[n].start();
|
|
}
|
|
|
|
for (int n = 0; n < thr.length; n++) {
|
|
try {
|
|
thr[n].join();
|
|
} catch (InterruptedException ex) {
|
|
}
|
|
}
|
|
|
|
System.out.println(counter == 1000000 * thr.length ?
|
|
"ok" : "fail: " + counter);
|
|
}
|
|
}
|