java多线程 单实例多线程的安全
ThreadLocal变量--解决变量安全问题的终极解决之道
package 多线程;class Runner implements Runnable {ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>();@Overridepublic void run() {for (int i = 1; i <= 10; i++) {if (threadLocal.get() == null) {threadLocal.set(new Integer(0));}int x = (Integer) threadLocal.get();x = x + i;threadLocal.set(x);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "\tsum="+ threadLocal.get());}}}?
?
把数据存储存储到threadLocal里
?
package 多线程;public class ThreadLocalTest {public static void main(String[] args) {Runnable run = new Runner();Thread ta = new Thread(run,"threadA");Thread tb = new Thread(run,"threadB");ta.start();tb.start();}}?调用之后,安全输出