假设有如下简单需求:
注册功能 :注册时要求用户的身份证号有且唯一则在代码中如下public boolean register(User user){
    boolean result = false;
    synchronized(this){
        result=CheckedUser.IsExistentByUid(user.getUid());//检查该身份证号是否已注册
        if(result){
            addUser(user);//添加新的用户记录 等
        }
    }
}
上面的做法
为了保证添加用户时的安全性 把 检查+插入 放在了同步块中,但是这样就没有充分利用 服务器和数据库的性能。
请问各位有没有什么好的方法能够既避免数据一致性问题又能充分使用服务器和数据库的性能呢?~
PS: 我百度了一下相关问题 但是 用的是  "java高并发" 关键字 但是查出来的大部分都是讲 分布式和减轻服务器压力的方案,全是大的概念,没有详细的关于 减小颗粒度、保持数据一致性 与 多线程下 同步代码块的执行效率的提升 的东西,望各位前辈多多指教。
如有好的相关博文也欢迎分享,谢谢各位。