1.一种基于细粒度读写锁的安全高效软件事务性内存同步方法,其特征在于,包括:S1、对任务中的共享资源请求进行封装,具体的:将包括有写操作的请求封装为写事务,将只包括读操作的请求封装为读事务;
S2、写事务的执行需要获得对应共享资源的写锁,读事务的执行需要获得对应共享资源的读锁,所有事务的执行不能被抢占;
共享资源的读锁、写锁采用基于优先级队列的自旋锁实现;优先级队列具体为:每个共享资源对应一个等待队列;在同一共享资源上等待的事务,按照事务的优先级从高到低在等待队列中进行排队,且等待队列中事务的优先级唯一;
共享资源的读锁、写锁采用基于优先级队列的自旋锁实现,具体的:对一个共享资源提出请求的事务首先进入以优先级排序的等待队列,若该事务的所有请求均处于对应共享资源等待队列的队首位置,且对应的共享资源均未被具有互斥关系的事务锁住;则该事务将原子性地对所有所需的共享资源上锁,并从对应的共享资源等待队列中移除;否则事务忙等直到所有条件得到满足;
写锁与同一共享资源的写锁、读锁互斥;
读锁与同一共享资源的写锁互斥;
S3、一个事务执行完毕后,释放所有的锁。