我的意思是比如我建立了一个mysql数据库连接,一个线程正在使用这个连接时,另一个线程是否可以同时使用这个连接操作数据库,还是要等那个线程用完后,这个线程才可以用?
如果是上面这样的,那同时建多个连接就能提高效率了,否则用一个连接就可以了。

解决方案 »

  1.   

    这个问题怎么已经结贴了呢!
    我一个月前也遇到了这样的问题,现在就在这里说说,可能已经晚了。整个程序创建一个线程池,在每个线程上创建一个数据库连接(一个线程一个数据库连接)。这样就没有任何问题了。
    怎样保证在一个线程上创建一个数据库连接呢?你把数据库处理封装成一个类,在这个线程上new一个类对象,并把他以线程本地存储的方式存储起来,当每次使用数据库时,从线程本地存储中取出来。如果这个程序是一个SOCKET服务端,SOCKET采用IO完成端口形式,那么线程个数=CUP×2,那么在每个线程处理数据库时,先查看本地存储是否有数据,如果没有就new一个数据库类对象,并存储,下次再用时再查看本地存储是否有数据,如果上次存储了,这次当然有了,直接取出来用就是了。
      

  2.   

    大家都没有理解我的意思,我的意思是问mysql连接对象是否支持多线程,即多个线程可以同时使用这个mysql连接对象对数据库做各种操作?
      

  3.   

    我理解楼主的意思了。
    access可以。。
    我以前做过。
      

  4.   

    用连接池是为了提高性能,节省每次重新连接的系统消耗。所以跟“mysql连接对象是否支持多线程”没有关系。多线程中不要用公用一个连接,事务完整性不能保证。