public class newTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ObjectStat stat=new ObjectStat();
ObjGenerater t1=new ObjGenerater(stat);
ObjFinder t2=new ObjFinder(stat);
new Thread(t1).start();
new Thread(t2).start();
}
}
class ObjGenerater implements Runnable{
private ObjectStat stat;
ObjGenerater(ObjectStat stat){
this.stat=stat;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
stat.getObj();
}
}
}
class ObjFinder implements Runnable{
private ObjectStat stat;
ObjFinder(ObjectStat stat){
this.stat=stat;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
stat.objStat();
}
}
}
class ObjectStat{
private TestObj obj;
void getObj(){
obj=new TestObj();
}
void objStat(){
System.out.println(obj);
if(obj==null)
{
System.out.println("I find a null obj!");
return ;
}
}
}
class TestObj{
TestObj(){
try {
wait(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
验证new一个新对象是不加锁的操作,会导致出现null异常
最新推荐文章于 2021-06-14 17:59:26 发布