一种大规模锁系统实现方法、装置、存储介质和服务器制造方法及图纸

技术编号:32010265 阅读:28 留言:0更新日期:2022-01-22 18:27
一种大规模锁系统实现方法、装置、存储介质和服务器,大规模锁系统实现方法包括应用程序调用本软件模块应用程序调用接口,初始化锁池管理对象,应用程序调用接口接到访问请求,转到锁池管理层实现服务;应用程序调用本软件模块应用程序调用接口,为需要进行锁保护的对象创建一个逻辑锁对象,应用程序调用接口接到访问请求,转到逻辑锁管理层实现服务;应用程序调用本软件模块应用程序调用接口,执行加锁流程以及解锁流程,转到逻辑锁操作层实现对应服务。由于超过百万级对象需要线程安全,可避免锁过多对系统造成过高的内存和锁资源压力。如果大规模使用临界区锁,由于多线程竞争不断发生,使用本发明专利技术仅用很少的临界区锁可完成多线程的安全功能。线程的安全功能。线程的安全功能。

【技术实现步骤摘要】
一种大规模锁系统实现方法、装置、存储介质和服务器


[0001]本专利技术涉及大规模资源对象线程安全保护领域,具体涉及一种大规模锁系统实现方法、装置、存储介质和服务器。

技术介绍

[0002]锁是多任务操作系统提供的一种重要资源,常见的有临界区、信号量、互斥量等多种形式,其核心功能是在并行程序设计领域,当两个或多个线程面临同时访问某一个资源(同一个变量、同一个内存块、同一个Socket句柄、同一个IO句柄等)的可能时,为避免发生读写冲突,需要对这些读写操作进行排他性保护,确保某个线程对这个资源进行操作时,其他线程处于等待状态。
[0003]在大型服务器开发领域,由于需要涉及对大规模的变量、内存对象、句柄对象等资源进行多线程、大并发的并行访问,这种高密集的资源访问,需要高效和海量的锁资源支持,才能保证数据访问的完整性和安全性,以及保证资源访问的效率。但是锁是一种系统资源,每个进程允许持有的锁数量是有限的,大量使用锁资源,将会大规模消耗系统的句柄资源和内存资源,严重影响服务进程的性能,甚至导致操作系统因资源不足而崩溃。所以一般在大规模使用锁资本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种大规模锁系统实现方法,其特征在于,包括以下步骤:应用程序调用本软件模块应用程序调用接口,初始化锁池管理对象,应用程序调用接口接到访问请求,转到锁池管理层实现服务;应用程序调用本软件模块应用程序调用接口,为需要进行锁保护的对象创建一个逻辑锁对象,应用程序调用接口接到访问请求,转到逻辑锁管理层实现服务;应用程序调用本软件模块应用程序调用接口,准备持有锁,应用程序调用接口接到访问请求,转到逻辑锁操作层实现服务,如果请求的是临界区锁则执行lock()操作,如果是读写锁的读锁则执行rdlock()操作,写锁则执行wrlock()操作;应用程序调用本软件模块应用程序调用接口,准备释放持有锁,应用程序调用接口接到访问请求,转到逻辑锁操作层实现服务,如果请求的是临界区锁则执行unlock()操作,如果是读写锁的读锁则执行rdunlock()操作,写锁则执行wrunlock()操作。2.根据权利要求1所述的大规模锁系统实现方法,其特征在于:在同一把系统物理锁的保护下完成操作步骤,以保证操作步骤在执行过程中不被打断。3.根据权利要求1所述的大规模锁系统实现方法,其特征在于:所述的lock()操作执行条件为多个线程同时访问同一资源。4.根据权利要求1所述的大规模锁系统实现方法,其特征在于,所述的lock()操作执行步骤包括:首次提出加锁需求后,调用锁池接口创建一个全局的锁池,里面存放多个空闲锁等待使用;锁池接收加锁任务后,判断此资源是否为第一次发起加锁请求,如果是第一次发起加锁请求,锁池会主动分配给此资源一个空闲锁,并对此锁的引用计数值进行加一,然后进行上锁操作;如不是第一次发起加锁请求,锁池不会对此次请求分配新的空闲锁,仅在此资源原有锁的基础上进行引用计数值加一操作,用于表示此对象正在被多方使用。5.根据权利要求1所述的大规模锁系统实现方法,其特征在于:所述的unlock...

【专利技术属性】
技术研发人员:何清禹力杰王毅王奕飞谢贝贝
申请(专利权)人:西安西热电站信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1