synchronizedobjectholder.java

来自「FMJ(freedom media for java)是java视频开发的新选择」· Java 代码 · 共 59 行

JAVA
59
字号
package com.lti.utils.synchronization;/** *  * @author Ken Larson * */public class SynchronizedObjectHolder<T>{	public SynchronizedObjectHolder()	{		super();	}		public SynchronizedObjectHolder(T value)	{	setObject(value);	}		private T object;		public synchronized void setObject(T value)	{		object = value;		notifyAll();			}		public synchronized T getObject()	{		return object;	}		public synchronized void waitUntilNotNull() throws InterruptedException	{	while (object == null)		{			wait();		}				}		/**	 * @return true if value is now non-null, false if timeout occurred	 */	public synchronized boolean waitUntilNotNull(int timeout) throws InterruptedException	{	long start = System.currentTimeMillis();		while (object == null)		{	long now = System.currentTimeMillis();			long diff = now - start;			long wait = timeout - diff;			if (wait <= 0)				return false;			wait(wait);		}		return true;		}	}

⌨️ 快捷键说明

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