1

我有一个使用 OpenMP 并行化的 c++ 中的 for 循环。在循环中,我正在访问一个 sql server 数据库。有人告诉我,如果我在线程之间共享相同的 ODBC 驱动程序,数据访问将不会是并行的。如果我为每次迭代定义不同的驱动程序,那将非常耗时。(?)有没有办法让不同的线程以安全的并行方式访问相同的数据?

PS:我没有写入数据库,只是从中读取。

4

1 回答 1

0

有人告诉我,如果我在线程之间共享相同的 ODBC 驱动程序,数据访问将不会是并行的。

你确定你已经准确地告诉了这件事吗?

多线程存在很多问题,但对于大多数 ODBC 驱动程序,您可以使用每线程连接模型来并行读取。因此,每次启动线程时都连接(并在线程关闭时关闭)。更好的模式将是使用连接池。

于 2012-05-17T09:33:18.900 回答