我尝试搜索这个问题,但没有找到任何东西,好像我是唯一一个尝试过的人。
基本上我有一个静态对象,我用它来同步包含类的构造函数内的资源访问,我不时注意到它不起作用!
private static Integer lock = Integer.valueOf(0);
public testClass(Context ctx)
{
if (ctx != null)
context = ctx.getApplicationContext();
else
context = null;
synchronized(lock)
{
Log.v(at_data.TAG, "I_AM_IN=" + I_AM_IN);
I_AM_IN = true;
// Access resource
//
// Multiple threads do enter here!
Log.v(at_data.TAG, "I_AM_OUT=" + I_AM_IN);
I_AM_IN = false;
}
}
我可能错过了一些东西,但没有找到任何文件说它不应该工作!?。
输出:
I_AM_IN=false
I_AM_IN=true
I_AM_OUT=true
I_AM_OUT=false
大多数时候它会是这样的:
I_AM_IN=false
I_AM_OUT=true
I_AM_IN=false
I_AM_OUT=true