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

📄 nodelist.java

📁 Java多线程例子 为你提供一个JAVA多线程的实例
💻 JAVA
字号:
/*
 * Created on 2005-9-2
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.apollo.thread.example;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class NodeList {
	
	List list = new ArrayList();

	public NodeList(int size) {
		for (int i = 1; i <= size; i++) {
			list.add( new Node(i) );
		}
	}
	
	public synchronized boolean isComplete(){
		boolean result = true;
		for (Iterator iter = list.iterator(); iter.hasNext();) {
			Node n = (Node) iter.next();
			if (!n.isComplete()) {
				result = false;
				break;
			}
		}
		return result;
	}
	
	public synchronized Node getNode(){
		Node result = null;
		for (Iterator iter = list.iterator(); iter.hasNext();) {
			Node n = (Node) iter.next();
			if (n.isReady()) {
				//在取得节点的时候就设定(改变)状态,以保证其它线程不会重复取!
				//注:其实最好节点流动经过的每一个地方都对应的为其设定一种状态,以
				//  反映最真实的节点状态。
				n.setState(Node.RECEIVE_MIDMAY);
				result = n;
				break;
			}
		}
		return result;
	}
	
	public int getSumOfNodeValue(){
		int result = 0;
		for (Iterator iter = list.iterator(); iter.hasNext();) {
			Node n = (Node) iter.next();
			result += n.getData();
		}
		return result;
	}

}

⌨️ 快捷键说明

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