假如我有一个表,通过线程池从数据库中取数据,如何做到独占一条数据并尽可能高效,每个数据都有一个状态,我能想到的就是代码加lock,select完update一下status,有没有更好的方式实现
我的错,问题没有说清楚,是一个服务器集群通过线程池访问一个中转服务器取数据,中转服务器是被动提供数据
数据库的原子操作用的好就行
update table set state=lock output inserted.* where state=enable
大概思路就是这样
您简直就是我的救星,第一次知道SQL还可以这样用,万分感谢
可以这样,主线程load数据,然后分配给工作线程。工作线程完成批量任务,通知主线程继续分配。
我的错,问题没有说清楚,是一个服务器集群通过线程池访问一个中转服务器取数据,中转服务器是被动提供数据
@MSky: 中转服务器做一个当前记录呗。啦数据请求到了 原子修改这个下标