日期:2014-05-16  浏览次数:20758 次

多线程操作同一结果集需不需要同步
在一个数据库连接上所得到的结果集,如果需要多线程分别从这个结果集中读取记录,那么需不需要在应用程序中考虑多线程的同步?
另外,如果在上面的问题中取得结果集用的是 mysql_use_result 而不是 mysql_fetch_result,那么在另外一个数据库连接中能不能对相应的数据库表进行 增删查改 的操作呢?

------解决方案--------------------
在一个数据库连接上所得到的结果集,如果需要多线程分别从这个结果集中读取记录,那么需不需要在应用程序中考虑多线程的同步?
要看你的具体应用。你可以在MYSQL上设置事务的隔离级别。

另外,如果在上面的问题中取得结果集用的是 mysql_use_result 而不是 mysql_fetch_result,那么在另外一个数据库连接中能不能对相应的数据库表进行 增删查改 的操作呢?
看你的具体操作代码,如果使用了锁或者事务,则会受影响。 如果都只是简单的 select 则没有问题。
------解决方案--------------------
探讨

LS能不能再说得详细一些,我还是不太明白。

“具体的应用”怎么理解呢?我的程序就是多线程在同一连接上的结果集中读取数据,然后对记录进行处理。另外,其他的应用程序可能随时会需要更新这张数据库表,但那些程序不是我负责的。
简单来说,也就是我的应用程序只读取数据,但别人的应用程序会更新数据库表。不同的应用程序是在不同的数据库连接上来操作的。
在这样的情况下,我是否需要……