是否在java setField方法中同步

时间:2018-04-23 02:28:49

标签: java synchronized

在thre product env中,我们发现重复的主键错误。 IdGenerator.generateId()是线程安全的,所以我怀疑方法setId()不同步,但我无法弄清楚原理的原因。有点像这样: bill.setId(IdGenerator.generateId()) - > {step1:Long id = IdGenerator.generateId(); step2:bill.setId(id);因此,step2中的多线程在step1中共享相同的值。

   public long saveBill(Bill bill) throws Exception {
    //IdGenerator.generateId() was an synchronized method
    bill.setId(IdGenerator.generateId());
    return billDao.saveBill(bill);
    }

0 个答案:

没有答案