有没有办法检查有多少线程在等待同步方法解锁?
我想知道线程何时调用synchronized方法:
1)已经有多少线程在等待调用该方法?
2)一旦调用该方法需要等待该方法解锁多长时间?
解决方案:我使用堆垛机解决了这个问题:
public class LockedClass {
public static int count;
public static void measuringClass() throws IOException{
long startTime = System.currentTimeMillis();
count++;
System.out.println("Threads waiting="+count);
lockedMethod(startTime);
count--;
System.out.println("Threads waiting="+count);
}
public static synchronized void lockedMethod(long startTime) throws IOException{
System.out.println("I spent="+(System.currentTimeMillis()-startTime)+" in the queue");
Hashtable<String, String> params = new Hashtable<String, String>();
params.put("param1", "test");
params.put("param2", "12345678");
String sessionId = Common.getSession(Common.executeHttpRequest(params));
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法在JSTL中将变量指定为参数名称,即:
<c:set var='myVar' value='dynamicParameterName' />
<c:out value='${param.(dynamicParameterName)}' />
Run Code Online (Sandbox Code Playgroud) 我有一个场景,我有单个入口点Servlet和进一步的Servlet请求被转发到进行繁重处理.
我正在寻找分配此负载的选项,我想知道是否可以使用Tomcat或其他平台在使用群集类型配置或类似设置的不同服务器上的Servlet之间转发请求.
我已经找到了一些关于集群Servlet和Tomcat的文档,但没有一个表明我可以看到Servlet请求转发是否可行.
进行Servlet分析的最佳方法是什么?
特别是我正在寻找一个可以显示servlet中方法调用的执行时间的解决方案.
我在Tomcat环境中运行Servlet.
我尝试过VisualVM,但它只允许我从Tomcat线程而不是Servlet本身看到方法调用.
有没有办法从toString转换回Java中的对象?
例如:
Map<String, String> myMap = new HashMap<String, String>();
myMap.put("value1", "test1");
myMap.put("value2", "test2");
String str = myMap.toString();
Run Code Online (Sandbox Code Playgroud)
有没有办法将此String转换回Map?
Java没有任何方法可以在没有明确定义时猜测日期格式吗?
例如,用户键入11Mar09或11-09-2009或11/09/2009或11-09什么是解析这个到Date对象的最佳方法,没有一堆try catch或引发错误?
有没有办法使用ANT从web.xml文件中删除元素?
例如,我在web.xml中定义的用于单元测试的某些servlet在生产环境中是不必要的,有没有办法去除它们或者我需要一个单独的生产web.xml文件?
谢谢.