是否可以创建一个spring-boot方法,其中所有使用我站点的用户都运行排队方法(不重叠执行?)例如,我有一个方法可以根据With为每个用户生成一个协议号它访问的日期(日,月,年,小时,分钟,秒),但是2个用户获得相同的协议是不可能的(所以我希望只要用户执行该方法,其他人等待(即使它需要一个几秒钟?)
韩国社交协会
此代码:
public synchronized Long dec() {
return Calendar.getInstance().getTimeInMillis()
}
这将为每个用户返回一个唯一的?即使一百万用户同时访问我的网站? TKS
答案 0 :(得分:0)
- 首先,对同一对象的两个同步方法的调用不可能进行交错。当一个线程是 执行对象的同步方法,所有其他线程 调用同一对象块的同步方法(挂起 执行)直到第一个线程完成对象。
- 其次,当同步方法退出时,它会自动建立与之后任何一个发生的关系 调用同一对象的同步方法。这
保证所有人都可以看到对象状态的变化 线程。
建议替代方案: