我做一个多线程的应用程序,每个线程要独立的访问数据库,我选择用TQuery,TSession和TDatabase。
    请问,如果我只用一个TQuery实例,各个线程在访问数据库时,都对这一个实例的DatabaseName和SessionName属性进行修改,是否会发生临界区问题?要想解决这个问题是否应该每个线程都拥有一个TQuery实例?

解决方案 »

  1.   

    1 TQuery实例也是一个资源,肯定有互斥问题
    2 不知道你各个线程的作用,最好是分开,如果是用到了事务,最好都分开。
      

  2.   

    不会,如果你只有这一个实例,肯定不会,前提是,当你对这个实例的databasename and sessionname属性进行修改时,你必须让该实例所进行的事务进行提交或者回滚。或者,神仙也无法断定会不会冲突。