java - 处理结果集时出现死锁
问题描述
我正在处理在结果集中提取的大约 300k 条记录。
ResultSetMetaData md = resultSet.getMetaData();
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
while (resultSet.next()) {
String prodIda2a2 = "";
String skuIda2a2 = "";
String pslIda2a2 = "";
String sslIda2a2 = "";
String csIda2a2 = "";
int dataColumns = md.getColumnCount();
Map<String, String> row = new ConcurrentHashMap<String, String>();
for (int i = 1; i <= dataColumns; ++i) {
String columnName = md.getColumnName(i);
String value = String.valueOf(resultSet.getObject(i));
if (columnName.equals("productidA2A2"))
prodIda2a2 = value;
else if (columnName.equals("skuidA2A2"))
skuIda2a2 = value;
else if (columnName.equals("productseasonlinkidA2A2"))
pslIda2a2 = value;
else if (columnName.equals("skuseasonlinkidA2A2"))
sslIda2a2 = value;
else if (columnName.equals("skucostsheetidA2A2"))
csIda2a2 = value;
row.put(columnName, value);
}
list.add(row);
我在以下两行中陷入僵局。
String value = String.valueOf(resultSet.getObject(i));
row.put(columnName, value);
我将不胜感激任何帮助。以下是例外情况:
"RMI TCP Connection(8)-10.13.16.6" Id=30 守护进程prio=5 RUNNABLE Blocked (cnt): 400; 等待(cnt):391 CPU nanos:40859375000;用户纳米:39515625000;分配的字节数:23685333312 方法上下文:q3ixzpr;k5d8myjr;13996;h2ex9v;1; 数据库会话:上下文使用的 1 个 CPU 的 72%:10.185872840911994 (40859375000/401137689800);按上下文分配的字节数:23684723280
at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1019) at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006) at com.integration.common.initialload.loader .pushData(Loader.java:255) 在 com.integration.common.initialload.loader.initloader(Loader.java:71)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method .invoke(Method.java:498) at wt.method.MethodResultWriter.writeExternal(MethodResultWriter.java:165) at wt.method.MethodResult.writeExternal(MethodResult.java:226) at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream. java:1456) 在 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430) 在 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) 在 java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) 在sun.rmi.server 上的 sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:290)。UnicastServerRef.dispatch(UnicastServerRef.java:367)
在 sun.rmi.transport.Transport$1.run(Transport.java:200) 在 sun.rmi.transport.Transport$1.run(Transport.java:197) 在 java.security.AccessController.doPrivileged(Native Method) 在 sun .rmi.transport.Transport.serviceCall(Transport.java:196) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport .java:834) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$46/1748043306.run( Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java :第 1149 章5c5239fa
解决方案
推荐阅读
- git - 在 OSX 中查找更新文件的进程
- java - 强制子类以自身为参数覆盖方法
- javascript - 获取对象数组中的所有对象
- docker - GCP 中 kubernetes 内同一节点上从 Pod 到 Pod 的通信
- android - android.support.v7.widget.AppCompatButton 无法实例化(使用自定义样式)
- c# - 在 C# 中计算 git blob 哈希
- python - Web Scraping:如何获取“href”链接并从中获取表格
- sql - 如何在 oracle developer 中执行程序?
- go - 具有多个通道的多个 goroutine 的死锁
- javascript - 我无法在 Express 服务器中加载我的静态 JS