做一个全局的Method Stack.在函数被调用是push,在函数结束前pop,在log时peek.
public class MethodStack
{
private static java.util.Stack stack;
public void push(String strMethodName)
{
// synchronized (stack)
// {
stack.push(strMethodName);
// }
}
public static void push(String strMethodName)
{
}
public static String pop()
{
}
}
但是,事实上碰到多线程,就中刀了。但在单线程的程序里还是工作的。推荐使用Jbuilder
public class MethodStack
{
private static java.util.Stack stack;
public void push(String strMethodName)
{
// synchronized (stack)
// {
stack.push(strMethodName);
// }
}
public static void push(String strMethodName)
{
}
public static String pop()
{
}
}
但是,事实上碰到多线程,就中刀了。但在单线程的程序里还是工作的。推荐使用Jbuilder
我相信,为了handle多线程,每个线程应该有一个自己的stack.
public class MethodStack
{
private Stack stack = new Stack(); /* key = thread value = MethodStack instance */
private static HashMap map = new HashMap();
public static MethodStack getInstance(Thread thread)
{
synchronized (map)
{
MethodStack objMethodStack = map.get(thread);
if (objMethodStack == null)
{
objMethodStack = new MethodStack();
map.put(thread, objMethodStack);
}
return objMethodStack;
}
}
public static void removeInstance(Thread thread)
{
synchronized (map)
{
map.remove(thread);
}
} public void push(String strMethodName)
{
}
public String peek()
{
}
public String pop()
{
}
}