手头正在写的程序中有多线程(线程数<10)对数据库(用的jdbc但没用连接池)同时插入记录(每次<2000条),同时隔一段时间还会提取一些记录。
我们用的是固定大小的线程池(newFixedThreadPool),一个任务执行完了就复用一个线程执行另一个任务
因此 代码写成了这样:
final ExecutorService Gathers = Executors.newFixedThreadPool(gatherNum);
while(true)
{
Gathers.execute(new Gather());
}
但是在测试中发现 即使将gatherNum设为1,对执行sql语句的程序做同步化 ,数据插入数据库的速度也很慢 有时1,2秒才插入一个记录
将多线程改为直接由main跑一次任务 记录很快插入数据库
所以很疑惑
PS:执行sql语句的程序每个线程都会new一个 所以本来没想同步 但想问一下 我们对getcon,closestatment等等做了一个简单的包装 ,如果不对getcon作同步话的话 mysql会有什么反应?
分享到:
- 2007-11-03 13:29
- 浏览 5343
- 评论(1)
- 论坛回复 / 浏览 (1 / 6529)
- 查看更多
相关推荐
多线程并发访问无锁队列的算法研究.pdf 多线程并发访问无锁队列的算法研究.pdf 多线程并发访问无锁队列的算法研究.pdf 多线程并发访问无锁队列的算法研究.pdf 多线程并发访问无锁队列的算法研究.pdf
java多线程并发控制通信,用hibernate存储信息,数据库mysql.
WEB API 多线程并发测试工具; WEB API 多线程并发测试工具
Java 模拟线程并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发
基于Qt的多线程并发服务器 incomingConnection(qintptr socketDescriptor)检测
C#多线程连接mysql,Access并且比较两者的性能 vs2008 Cs3.5
代码里面包含一个并发4个线程同时运行 全部开始 全部停止 单个停止还有点问题。 还有生产者消费者 里面的里面能帮助你理解多线程的运用!
shell的多线程,以及使用多线程编写shell脚本实现当前文件夹下批量插入MySQL。
Tesseract OCR多线程并发识别案例----只演示多线程并发识别,此工具不关注识别正确率,可通过训练tessdata来获得更高的识别正确率。
深入浅出:讲解单例模式,多线程安全和并发访问问题.让你轻松应对面试
1.DBSqlMan是多线程访问mysql的动态库 2.mysql5,开源的windows下使用的mysql2次开发库,mysql官网上可以下载 3.testDb,简单的应用DBSqlMan的例子 整个工程已经在VS2005下运行通过,并在实际应用中使用过。提供了...
并发服务器-多线程服务器详解
模拟IPC,注册接收sip信令消息,模拟发送视频数据,多线程支持多路并发
java多线程并发的在新窗口
在开发过程中自己编写的多线程并发程序组件源代码共享给大家,里面有测试的例子,提供给大家学习,希望大家多提宝贵意见~
实现多线程的并发执行,能演示操作系统的时间转轮调度算法对多线程程序执行的影响效果,能控制一个或多个线程的执行情况。
JVM优化 并发调试和JDK8新特性,并发调试和JDK8新特性
JDK5中的多线程并发库.doc 描述了JDK多线程的并发
多线程并发从,学习笔记,代码+注释,从线程创建开始到多线程并发,相关锁以及一些设计模式等
JDK5中的多线程并发库