📄 nodelist.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 + -