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

📄 connectionwaiter.java

📁 无刷新功能的聊天室工具 java实现,本人课程设计的作业,附源代码
💻 JAVA
字号:
/*
 * Created on 2004. 6. 24.
 */
package chipchat;

import java.util.HashMap;

/**
 * @author MTY.
 */
public class ConnectionWaiter extends Thread {

	/*
	 * Sigleton..
	 */

	/** Instance */
	private static ConnectionWaiter instance = null;

	/** Constructor */
	private ConnectionWaiter() {
	}

	/** Getter of instance. */
	public static ConnectionWaiter getInstance() {
		if (instance == null) {
			makeInstance();
		}
		return instance;
	}

	/**
	 * Make just one instance.
	 */
	private static synchronized void makeInstance() {
		if (instance == null) {
			instance = new ConnectionWaiter();
		}
	}

	/** Lock object */
	private Object lock = new Object();
	/** Part1 */
	private HashMap part1 = new HashMap();
	/** Part2 */
	private HashMap part2 = new HashMap();

	/**
	 * Run method.
	 */
	public void run() {
		while (true) {
			try {
				Thread.sleep(30000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			synchronized (lock) {
				part2 = part1;
				part1.clear();
			}
		}
	}

	/**
	 * Put value
	 * @param name Name
	 * @param o value
	 */
	public void put(String name, ConnectionInfo o) {
		synchronized (lock) {
			part1.put(name, o);
		}
	}

	/**
	 * Get value
	 * @param name Name
	 * @return value
	 */
	public ConnectionInfo get(String name) {
		synchronized (lock) {
			Object o = part1.get(name);
			if (o != null) {
				part1.remove(name);
				return (ConnectionInfo) o;
			} else {
				o = part2.get(name);
				if (o != null) {
					part2.remove(name);
					return (ConnectionInfo) o;
				} else {
					return null;
				}
			}
		}
	}
}

⌨️ 快捷键说明

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