有关多进程访问数据库的互斥问题。
在取数据号码时,甲进程从数据库中检索出某一号码为可用后(即状态为空闲),但还没有占用(即修改状态为占用)前,乙进程做了同样的操作(也从数据库中检索出该号码),此后进程甲将该号码的状态改为占用,但对于进程乙来说,他并不知道该号码状态已经为别人改掉,于是导致了两个进程得出了相同的号码,并且均返回成功。(实际上返回成功的条件是原来号码状态为空闲,后来将状态改为占用)运行多个进程的目的是为了提高速度。期待高手指教,分不够可以再加。
数据表单定义如下:
HMHM VARCHAR2(9) (号码)
HMJT NUMBER(4) Y
HMLX VARCHAR2(6) Y
HMFJ NUMBER(4) Y
HMFB VARCHAR2(6) Y
HMZT VARCHAR2(6) Y (状态 000:空闲001:占用)
HMRQ VARCHAR2(8) Y
HMSJ VARCHAR2(6) Y