增加一个标识位flg为int型
假设资源为5
ll:
if flg >= 5 then
   loop
     申请资源
      go to ll;
   end loop;
else
   update tablename set flg = flg + 1;
   insert ...(消费资源)
   update tablename set flg = flg - 1;(释放资源)
end if;
这里还要注意先来先服务之类的原则,以免遭成死锁。

解决方案 »

  1.   

    生产者-消费者是属于典型的message queue应用.建议阅读一下Oracle8i Application Developer's Guide - Advanced Queuing (AQ)
    或者使用其它厂商的mq产品(比如ibm的MQ series)===========================
    oldwain
    ---------------------------
    http://www.itpub.net/index.php?referrerid=32 
    http://www.linuxforum.net/ 
    http://expert.csdn.net/
    http://www.oraclefan.net/