token.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 49 行

JAVA
49
字号
/*
 * $Id: Token.java,v 1.1 2003/11/25 11:41:47 epr Exp $
 */
package org.jnode.util;

/**
 * @author epr
 */
public class Token {

	private boolean locked;
	
	/**
	 * Create a new instance
	 */
	public Token() {
		this.locked = false;
	}
	
	/**
	 * Claim ownership of this token
	 * @param owner
	 * @param timeout
	 * @throws InterruptedException
	 * @throws TimeoutException
	 */
	public synchronized void claim(Object owner, long timeout) 
	throws InterruptedException, TimeoutException {
		final long start = System.currentTimeMillis();
		while (locked) {
			wait(timeout);
			if (locked) {
				if (System.currentTimeMillis() > start + timeout) {
					throw new TimeoutException();
				}
			}
		}
		this.locked = true;
	}

	/**
	 * Release ownership of this token
	 */
	public synchronized void release() {
		this.locked = false;
		notifyAll();
	}
}

⌨️ 快捷键说明

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