java实现根据前端的某个关键字进行线程控制

我的项目中,有个需求:

          前端请求不能同时处理某一条数据。

怎么实现呢?

我的方法是,把数据里面的id当成锁,实现线程控制。

可是,前端传入的对象在我们的虚拟机里都是新的对象,就算id值相同,也是两个对象啊,这样的锁,锁的住吗?

机智的我,想到了字符串常量池。

别忘了。字符串常量池不会存储两个相同值的对象的。

那么问题来了,怎么把id当成字符串,再从堆里转移到字符串常量池呢?

easy,String的intern方法啊!!!

贴代码吧。

public Map<String, Object> assign(@RequestBody BasicDBObject alarmOrder) {
String orderNum = alarmOrder.getString("orderNum");
String lock=orderNum.intern();
synchronized (lock) {

//不啦不啦不啦

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值