public static void main(String [] args) {
Threadmin th = new Threadmin();
new Thread(th, "1号窗口").start();
new Thread(th, "2号窗口").start();
new Thread(th, "3号窗口").start();
new Thread(th, "4号窗口").start();
new Thread(th, "5号窗口").start();
new Thread(th, "6号窗口").start();
new Thread(th, "7号窗口").start();
new Thread(th, "8号窗口").start();
new Thread(th, "8号窗口").start();
new Thread(th, "9号窗口").start();
new Thread(th, "10号窗口").start();
Threadmin2 a = new Threadmin2();
new Thread(a, "7号窗口").start();
}
public class Threadmin2 implements Runnable{
//TreeMap tee = new TreeMap();
public void run() {
//System.out.println("容器:"+tree.size());
while(true){
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("容器:"+ChatContainer.getInstance().getAll().size());
//System.out.println("标记:"+ChatContainer.getInstance().getint());
// Iterator iter = ChatContainer.getInstance().getAll().entrySet().iterator();
// while (iter.hasNext()) {
// Map.Entry entry = (Map.Entry) iter.next();
// Object key = entry.getKey();
// Object val = entry.getValue();
// Char r = (Char)val;
// tee.put(r.getDatatime(), r);
// //System.out.println(key+":"+r.getMessage()+":"+r.getDatatime());
// }
Iterator iter = ChatContainer.getInstance().getAll().entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
Char r = (Char)val;
//tee.put(r.getDatatime(), r);
System.out.println(key+":"+r.getMessage());
}
}
}
}
public class Threadmin implements Runnable{
int i =0;
public void run() {
while(i<500){
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int b = i++;
Char r = new Char();
r.setFlag(b);
r.setMessage("世界"+b);
ChatContainer.getInstance().addMessage(r);
System.out.println(Thread.currentThread().getName()+"#当前赋值#:"+b);
}
}
public class ChatContainer {
static int capacity = 50;
final private static AtomicInteger counter1 = new AtomicInteger(0);
final private static ConcurrentHashMap<Integer, Char> map = new ConcurrentHashMap<Integer, Char>(capacity);
final private static TreeMap<Long, Char> tree = new TreeMap<Long, Char>();
private static ChatContainer instance = new ChatContainer();
public ChatContainer(){}
public static ChatContainer getInstance(){
return instance;
}
public void addMessage(Char r){
int count = counter1.getAndIncrement();
// try {
// Thread.sleep(500);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
r.setDatatime(new Date().getTime()+count);
if(count>=capacity){
counter1.lazySet(0);
map.put(0, r);
}else{
map.put(count, r);
}
//System.out.println(Thread.currentThread().getName()+"B>>>>>>"+count+"内容:"+Char.getMessage());
// if(count>capacity){
// counter.lazySet(0);
// }
//System.out.println(counter.get()+"((((((((((((((((((((((");
}
public int getint(){
return counter1.get();
}
public TreeMap<Long, Char> getAll(){
Iterator iter = map.entrySet().iterator();
tree.clear();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object val = entry.getValue();
Char r = (Char)val;
tree.put(r.getDatatime(), r);
}
return tree;
}
}