我应该把问题说明白些,myTable中有一个字段为Oracle的全局序列;程序中不断有数据insert 进来;又有多线程循环处理表中的数据,线程数〈10;第一个线程都循环从myTable中一次取100条数据,然后把这处理过的100数据delete。同样,第二线程也从myTable中去100条数据,处理完并删除,其他线程也是这样处理....现在的问题是:第一线程从myTable中取100条数据后,在delete 之前,其他线程会从myTable中取出数据。这些数据有可能是已经被第一线程取出。
调试欢乐多
找到一个方法,供大家参考:
线程0读取序列号最后一个数字为0的记录,如:0,10,20,30....;线程1读取序列号最后一个数字为0的记录,如:1,11,21,31....;直到线程9读取序列号最后一个数字为9的记录,如:9,19,29,39....的记录。这样各个线程就不会互相影响。如果线程数是10,则采用:读的记录为〔(记录号)%(线程数)〕。