java - sql server 上的 ExecutorService 多线程
问题描述
我正在构建一个 java 应用程序以将数据从 sql server 数据库导入到 Elastic Search 我正在使用带有 Callable 的 ExecutorService 来使线程每个线程都使用页码也使用池连接。我注意到一个线程只在数据库中运行我希望线程并行运行而不是串行运行
int count= Runtime.getRuntime().availableProcessors(); ;
ExecutorService asyncExecutor = Executors.newFixedThreadPool(count);
List<Future<List<json>>> list = new ArrayList<Future<List<json>>>();
Future<List<json>> ml = null;
List<json> jList = null;
CutrePool c = new CutrePool(DBL.DB.URL2, DBL.DB.USER, DBL.DB.PASS);
do {
try {
for (int i = 0; i < count; i++) {
Therads1 t = new Therads1(page, PageSize, c.getConnection());
ml = asyncExecutor.submit(t);
list.add(ml);
page += 1;
}
for (Future<List<json>> j : list) {
jList = j.get();
if (!(jList == null)) {
asyncExecutor.execute(new Therads0(jList));
System.out.println(" count in elastic " + BL.es.pLcount);
}
}
解决方案
推荐阅读
- javascript - 如何在使用 socket.io 发出日期后格式化日期
- typescript - webpack 中的 vue/ts 应用程序显示:无法挂载组件:未定义模板或渲染函数
- ruby - Ruby - 如何在使用 Nokogiri 的 div 之后检索文本
- javascript - 从字符串中取出图像标签并将其放入数组中
- python - 如何替换元组列表的某些字符
- django - Django Admin:如何根据应用显示和隐藏字段?
- typescript - 如何使用 Parcel Bundler 将打字稿文件捆绑到单个 js 文件?
- android - 错误:org.json.JSONException:没有描述值
- ios - 使用 AVAudioEngine 的立体声麦克风直通?
- r - 根据另一个数据帧的向量中的信息提取列表元素