浏览 6544 次
锁定老帖子 主题:多线程并发访问mysql 插入记录很慢
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-03
我们用的是固定大小的线程池(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会有什么反应? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-11-03
发现用for循环的话就好了 (从目前来看 只要条件最后会终止 插入记录就正常 而while(true)不会自动终止)越来越疑惑了
|
|
返回顶楼 | |