update后返回更新的值

本文探讨了一种简单的模拟DHCP服务的方法,重点在于如何在多线程环境下保证动态分配IP地址的唯一性。提出了三种解决方案:代码段加锁、使用存储过程及全局变量、增加时间戳字段来控制唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目有个需求,需要模拟dhcp,当然只是简单的模拟,就只是一个动态分配IP。现在的做法是把ip池在存放在数据库中(包括一个ip字段和一个isUsed字段),服务器通过多线程来对客户端的请求进行ip分配,所以可以不用通过arp来保证ip冲突。

现在的问题是,服务器通过多线程对客户端的请求进行处理,所以还是要保证多线程下的ip唯一。分配方法是首先查询isUsed字段为0的limit 1 记录,然后在update set isUsed =1;现在的问题就是多线程下面不能保证update之前没有被其他的select

 第一个解决方法是对代码段加锁,但是我的Dao不是单例的,每次都要进行new一个。直接对方法加锁肯定不行,对代码段加锁不好选择锁对象。

 第二个方法就是先update然后在select,利用存储过程和全局变量;

 第三个方法就是笨点了,在表中加一条字段,long型;代码逻辑来控制,首先生成一个new Data().getTIme(),代表唯一串, update的时候一起写入,然后根据这个来select了~~~~好逗逼

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值