1.一种高效读写锁的实现方法,其步骤为:
1)程序的主线程初始化共享数据队列,为该共享数据队列设置一写线程和一读线程,以及设置一整数变量M来保存该共享数据队列最大长度,设置一变量K保存当前该共享数据队列中的数据个数;
2)当该程序需要对该共享数据队列进行写操作时,该主线程调用该共享数据队列的写线程,该写线程做写操作前,先检查K,如果K<M,则把要写的数据插入到该共享数据队列的写端,并且增加K的计数值;
3)当该程序需要对该共享数据队列进行读操作时,该主线程调用该共享数据队列的读线程,该读线程做读操作前,检查K,如果K>0,则从该共享数据队列的读端读取一个元素,并且减少K的计数值。
2.如权利要求1所述的方法,其特征在于,所述步骤2)中,如果K大于或等于M,即该共享数据队列已满,则丢弃当前要写的数据。
3.如权利要求1所述的方法,其特征在于,所述步骤2)中,如果K大于或等于M,即该共享数据队列已满,则等待该共享数据队列未满时,将当前要写的数据插入到该共享数据队列的写端,并且增加K的计数值。
4.如权利要求1所述的方法,其特征在于,所述步骤3)中,如果K=0,即该共享数据队列为空,则采取等待或者轮询的方式检测该共享数据队列中是否存在数据,如果存在,则从该共享数据队列的读端读取一个元素,并且减少K的计数值。
5.如权利要求1所述的方法,其特征在于,该共享数据队列中的元素为写入数据的指针。