private static final long MAX = 10000000;
public static final void main(String[] args) {
OSharedResourceExternal lock = new OSharedResourceExternal();
OModificationLock storageLock = new OModificationLock();
long timer = System.currentTimeMillis();
for (int i = 0; i < MAX; ++i) {
}
final long fixed = System.currentTimeMillis() - timer;
for (int i = 0; i < MAX; ++i) {
lock.acquireSharedLock();
lock.releaseSharedLock();
}
System.out.println("Read Locks: " + (System.currentTimeMillis() - timer - fixed));
timer = System.currentTimeMillis();
for (int i = 0; i < MAX; ++i) {
lock.acquireExclusiveLock();
lock.releaseExclusiveLock();
}
System.out.println("Write Locks: " + (System.currentTimeMillis() - timer - fixed));
timer = System.currentTimeMillis();
for (int i = 0; i < MAX; ++i) {
synchronized (lock) {
}
}
System.out.println("Simple Locks: " + (System.currentTimeMillis() - timer - fixed));
timer = System.currentTimeMillis();
for (int i = 0; i < MAX; ++i) {
storageLock.requestModificationLock();
storageLock.releaseModificationLock();
}
System.out.println("Storage Locks: " + (System.currentTimeMillis() - timer - fixed));
}