【技术实现步骤摘要】
一种大规模锁系统实现方法、装置、存储介质和服务器
[0001]本专利技术涉及大规模资源对象线程安全保护领域,具体涉及一种大规模锁系统实现方法、装置、存储介质和服务器。
技术介绍
[0002]锁是多任务操作系统提供的一种重要资源,常见的有临界区、信号量、互斥量等多种形式,其核心功能是在并行程序设计领域,当两个或多个线程面临同时访问某一个资源(同一个变量、同一个内存块、同一个Socket句柄、同一个IO句柄等)的可能时,为避免发生读写冲突,需要对这些读写操作进行排他性保护,确保某个线程对这个资源进行操作时,其他线程处于等待状态。
[0003]在大型服务器开发领域,由于需要涉及对大规模的变量、内存对象、句柄对象等资源进行多线程、大并发的并行访问,这种高密集的资源访问,需要高效和海量的锁资源支持,才能保证数据访问的完整性和安全性,以及保证资源访问的效率。但是锁是一种系统资源,每个进程允许持有的锁数量是有限的,大量使用锁资源,将会大规模消耗系统的句柄资源和内存资源,严重影响服务进程的性能,甚至导致操作系统因资源不足而崩溃。所以 ...
【技术保护点】
【技术特征摘要】
1.一种大规模锁系统实现方法,其特征在于,包括以下步骤:应用程序调用本软件模块应用程序调用接口,初始化锁池管理对象,应用程序调用接口接到访问请求,转到锁池管理层实现服务;应用程序调用本软件模块应用程序调用接口,为需要进行锁保护的对象创建一个逻辑锁对象,应用程序调用接口接到访问请求,转到逻辑锁管理层实现服务;应用程序调用本软件模块应用程序调用接口,准备持有锁,应用程序调用接口接到访问请求,转到逻辑锁操作层实现服务,如果请求的是临界区锁则执行lock()操作,如果是读写锁的读锁则执行rdlock()操作,写锁则执行wrlock()操作;应用程序调用本软件模块应用程序调用接口,准备释放持有锁,应用程序调用接口接到访问请求,转到逻辑锁操作层实现服务,如果请求的是临界区锁则执行unlock()操作,如果是读写锁的读锁则执行rdunlock()操作,写锁则执行wrunlock()操作。2.根据权利要求1所述的大规模锁系统实现方法,其特征在于:在同一把系统物理锁的保护下完成操作步骤,以保证操作步骤在执行过程中不被打断。3.根据权利要求1所述的大规模锁系统实现方法,其特征在于:所述的lock()操作执行条件为多个线程同时访问同一资源。4.根据权利要求1所述的大规模锁系统实现方法,其特征在于,所述的lock()操作执行步骤包括:首次提出加锁需求后,调用锁池接口创建一个全局的锁池,里面存放多个空闲锁等待使用;锁池接收加锁任务后,判断此资源是否为第一次发起加锁请求,如果是第一次发起加锁请求,锁池会主动分配给此资源一个空闲锁,并对此锁的引用计数值进行加一,然后进行上锁操作;如不是第一次发起加锁请求,锁池不会对此次请求分配新的空闲锁,仅在此资源原有锁的基础上进行引用计数值加一操作,用于表示此对象正在被多方使用。5.根据权利要求1所述的大规模锁系统实现方法,其特征在于:所述的unlock...
【专利技术属性】
技术研发人员:何清,禹力杰,王毅,王奕飞,谢贝贝,
申请(专利权)人:西安西热电站信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。