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

📄 condition2.java

📁 Nachos 5 java version
💻 JAVA
字号:
package nachos.threads;import nachos.machine.*;/** * An implementation of condition variables that disables interrupt()s for * synchronization. * * <p> * You must implement this. * * @see	nachos.threads.Condition */public class Condition2 {    /**     * Allocate a new condition variable.     *     * @param	conditionLock	the lock associated with this condition     *				variable. The current thread must hold this     *				lock whenever it uses <tt>sleep()</tt>,     *				<tt>wake()</tt>, or <tt>wakeAll()</tt>.     */    public Condition2(Lock conditionLock) {	this.conditionLock = conditionLock;    }    /**     * Atomically release the associated lock and go to sleep on this condition     * variable until another thread wakes it using <tt>wake()</tt>. The     * current thread must hold the associated lock. The thread will     * automatically reacquire the lock before <tt>sleep()</tt> returns.     */    public void sleep() {	Lib.assert(conditionLock.isHeldByCurrentThread());	conditionLock.release();	conditionLock.acquire();    }    /**     * Wake up at most one thread sleeping on this condition variable. The     * current thread must hold the associated lock.     */    public void wake() {	Lib.assert(conditionLock.isHeldByCurrentThread());    }    /**     * Wake up all threads sleeping on this condition variable. The current     * thread must hold the associated lock.     */    public void wakeAll() {	Lib.assert(conditionLock.isHeldByCurrentThread());    }    private Lock conditionLock;}

⌨️ 快捷键说明

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