public class SequenceA implements Sequence{ static int i = 0; public int getNumber() { return i++; }
public static void main(String[] args){ SequenceA sequenceA = new SequenceA(); new MyThread(sequenceA).start(); new MyThread(sequenceA).start(); new MyThread(sequenceA).start(); } }
//线程类
1 2 3 4 5 6 7 8 9 10 11 12 13
public class MyThread extends Thread { private Sequence sequence;
public MyThread(Sequence sequence){ this.sequence = sequence; }
public void run() { for(int i=0;i<4;i++){ System.out.println(Thread.currentThread().getName()+"--"+sequence.getNumber()); } } }
public int getNumber(){ contaner.set(contaner.get()+1); return contaner.get(); }
public static void main(String[] args){ SequenceA sequenceA = new SequenceA(); new MyThread(sequenceA).start(); new MyThread(sequenceA).start(); new MyThread(sequenceA).start(); } }
public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { ThreadLocalMap.Entry e = map.getEntry(this); if (e != null) { @SuppressWarnings("unchecked") T result = (T)e.value; return result; } } return setInitialValue(); }
评论加载中