每个线程有一个数据库连接?

时间:2011-05-17 18:25:42

标签: java database multithreading postgresql connection

我制作了一个webcrawler,每个帖子都会不断插入页面和链接。我必须为每个线程建立数据库连接或与它们共享一个连接?

2 个答案:

答案 0 :(得分:4)

您通常会使用某种数据库连接池来处理这种情况,这可以为您管理数据库连接的生命周期。在Java中,Apache Commons DBCP库通常用于此,但如果您使用其他框架,则可能内置了该功能。

答案 1 :(得分:0)

如果可行的话,还考虑使用生产者消费者模式将爬行与数据库i / o解耦。这将允许您稍后调整爬网程序线程(生成器)和数据库连接 - I / O线程(使用者)的数量。您可以使用有界阻塞队列将工作从爬网程序传输/分发到编写器。