NO.5 线程范围内共享变量的概念与作用(一)
代码:
package thread; import java.util.Random; public class ThreadScopeShareData { private static int data = 1; public static void main(String[] args) { for(int i = 0; i < 2; i ++) { new Thread(new Runnable() { @Override public void run() { data = new Random().nextInt(); System.out.println(Thread.currentThread().getName()+ "has put data:" + data); new A().get(); new B().get(); } }).start(); } } static class A{ public void get() { System.out.println("A " + Thread.currentThread().getName() + "get data :" + data); } } static class B{ public void get() { System.out.println("B " + Thread.currentThread().getName() + "get data :" + data); } } }
输出
Thread-0has put data:-1012275922 Thread-1has put data:1851411786 A Thread-0get data :1851411786 A Thread-1get data :1851411786 B Thread-0get data :1851411786 B Thread-1get data :1851411786
此例主要是为了证明,线程范围内共享变量的不同步。