wzwdev1980 2023-09-06 09:27 采纳率: 0%
浏览 4

从已有可用号段中随机获取一个可用的号,基于数据库实现


create table tb(
    no varchar(10) not null,
    status int,
    primary key (no)
);


insert into tb(no,status) values ('1',0);
insert into tb(no,status) values ('2',0);
insert into tb(no,status) values ('3',0);
insert into tb(no,status) values ('4',0);
insert into tb(no,status) values ('5',0);
insert into tb(no,status) values ('6',0);
insert into tb(no,status) values ('7',0);
insert into tb(no,status) values ('8',0);
insert into tb(no,status) values ('9',0);
insert into tb(no,status) values ('10',0);
......
insert into tb(no,status) values ('10000',0);

通过java实现API,请求接口实现获取一个status=0的no,当返回此no时将status修改为1。

系统总共有10000个可用的no,如果1000个线程同时访问。

要求:基于数据库如何实现快速返回一个可用的no

  • 写回答

3条回答 默认 最新

  • 瞬间的未来式 2023-09-06 09:32
    关注

    select for update

    评论

报告相同问题?

问题事件

  • 创建了问题 9月6日