/*
* 添加volatile,使t2线程得到通知
* 全局变量lists透明化,
*/
volatile List lists=new ArrayList();
缺点:
线程 t2 while(true) 浪费CPU
import java.util.ArrayList;
import java.util.List;
public class Volatile_1_value {
//添加volatile,使t2得到通知
volatile List lists=new ArrayList();
public void add(Object o) {
lists.add(o);
}
public int size(){
return lists.size();
}
public static void main(String[] args) {
final Volatile_1_value c=new Volatile_1_value();
//线程一
new Thread(new Runnable() {
public void run() {
for(int i=0;i<10;i++){
c.add(new Object());
System.out.println("add"+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
},"t1").start();
//线程二
new Thread(new Runnable() {
public void run(){
while(true){ //一直循环,浪费CPU
if(c.size()==5){
break;
}
}
System.out.println("t2结束");
}
},"t2").start();
}
}