public class Thread_A extends Thread { Human human; public Thread_A(String name, Human human) { super(name); this.human = human; } @Override public void run() { for (int i = 0; i < 100; i++) { human.setAge(human.getAge()+1); System.out.println(getNam
方式一: /** * 两个线程要是可见的所以要加上votalile */public class Test_01 { public static void main(String[] args) { final Test_01_Container t = new Test_01_Container(); new Thread(new Runnable() { @Override public void run() { for(int i = 0; i < 10; i++){ System.out
注:这里inc方法和dec方法加synchronized关键字是因为当两个线程同时操作同一个变量时,就算是简单的j++操作时,在系统底层也是通过多条机器语句来实现,所以在执行j++过程也是要耗费时间,这时就有可能在执行j++的时候,另外一个线程H就会对j进行操作,因此另外一个线程H可能操作的可能就不是最新的值了.因此要提供线程同步. 版本2: 本版本不需要synchronized,而用AtomicInteger代替 package com.yx.zzg; public class ThreadT