⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mrswlock.java

📁 JAVA3D矩陈的相关类
💻 JAVA
字号:
/* * $RCSfile: MRSWLock.java,v $ * * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. * * Use is subject to license terms. * * $Revision: 1.5 $ * $Date: 2007/04/12 17:34:05 $ * $State: Exp $ */package javax.media.j3d;/** * Use this lock to allow multiple reads/single write synchronization. * To prevent deadlock a read/writeLock call must match with a read/writeUnlock call. * Write request has precedence over read request. */class MRSWLock {    static boolean debug = false;    private int readCount;    private boolean write;    private int writeRequested;    private int lockRequested;    MRSWLock() {	readCount = 0;	write = false;	writeRequested = 0;	lockRequested = 0;    }        synchronized final void readLock() {	lockRequested++;	while((write == true) || (writeRequested > 0)) {	    try { wait(); } catch(InterruptedException e){}	}	lockRequested--;	readCount++;    }        synchronized final void readUnlock() {	if(readCount>0)	    readCount--;	else	    if(debug) System.err.println("ReadWriteLock.java : Problem! readCount is >= 0.");		if(lockRequested>0)	    notifyAll();    }        synchronized final void writeLock() {	lockRequested++;	writeRequested++;	while((readCount>0)||(write == true)) {	    try { wait(); } catch(InterruptedException e){}	}	write = true;	lockRequested--;	writeRequested--;    }    synchronized final void writeUnlock() {	write = false;	if(lockRequested>0)	    notifyAll();    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -