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; }
}
