发明名称 |
缓冲区并发访问方法及装置 |
摘要 |
本发明实施例公开了一种缓冲区并发访问方法及装置。该方法应用于缓冲区并发访问架构中的被CPU唤醒的写线程/读线程,该架构包括:N个线程访问组,每个线程访问组对应各自的缓冲区子区域,每个线程访问组均包括:一个读线程和一个写线程,读线程和写线程分别对应有各自的用于获得缓冲区的全局锁的条件变量;未被唤醒的写线程和读线程的条件变量均处于阻塞状态;该方法包括:调用被CPU解除阻塞的条件变量以获得缓冲区的全局锁;对自身所对应的缓冲区子区域执行访问操作;在访问操作结束后,释放所调用的条件变量,以使得CPU能够解除执行下一次访问操作所需的写线程/读线程所对应条件变量的阻塞。可见,本方案能够提高缓冲区访问效率。 |
申请公布号 |
CN104881258A |
申请公布日期 |
2015.09.02 |
申请号 |
CN201510315473.5 |
申请日期 |
2015.06.10 |
申请人 |
北京金山安全软件有限公司 |
发明人 |
潘洪安 |
分类号 |
G06F3/06(2006.01)I;G06F13/16(2006.01)I |
主分类号 |
G06F3/06(2006.01)I |
代理机构 |
北京柏杉松知识产权代理事务所(普通合伙) 11413 |
代理人 |
马敬;项京 |
主权项 |
一种缓冲区并发访问方法,其特征在于,应用于缓冲区并发访问架构中被CPU唤醒的写线程/读线程;所述缓冲区并发访问架构包括:N个线程访问组,其中,每个线程访问组对应各自的缓冲区子区域,并且,每个线程访问组均包括:一个读线程和一个写线程,所述读线程和所述写线程分别对应有各自的用于获得所述缓冲区的全局锁的条件变量;并且,所述N个线程访问组内的当前被唤醒的写线程/读线程之外的写线程所对应的条件变量和读线程所对应的条件变量均处于阻塞状态;所述方法包括:调用被CPU解除阻塞的条件变量以获得所述缓冲区的全局锁;对所述被CPU唤醒的写线程/读线程所对应的缓冲区子区域执行访问操作;在访问操作执行完毕后,释放所调用的所述条件变量,以使得所述CPU在获知当前被唤醒的写线程/读线程释放所述条件变量后,能够解除执行下一次访问操作所需的写线程/读线程所对应的条件变量的阻塞。 |
地址 |
100085 北京市海淀区小营西路33号二层东区 |