使用同步的(synchronized)代码段行不行?

解决方案 »

  1.   

    把读取和写入操作放到synchronized中试试
      

  2.   

    synchronized好像是单客户端内部的多线程同步,
    多个客户端之间应该没有用
      

  3.   

    一种方法是用DBMS的并发控制,一种是再加一个Server程序进行同步控制。
      

  4.   

    你可以这样:
    在数据库中有一个表A,里面只有一个字段C1在需要锁定之前,在客户端
    conn.setAutoCommit(false);
    PreparedStatement prep = conn.prepareStatement("update A set C1=C1");
    prep.executeUpdate();
    prep.close();
    //开始做你的事情;
    //做完以后
    conn.commit();
    conn.setAutoCommit(true);
    这样就可以依赖于数据库的锁来完成了,因为第一个用户一旦执行了executeUpdate,数据库已经锁定该表,后面的用户是不能再Update这个表的,他们会处于等待状态
      

  5.   

    server需要clustering, 所以还是不能使用server的线程同步