CN107729129A - 一种基于同步锁的多线程处理方法、终端以及存储介质 - Google Patents

一种基于同步锁的多线程处理方法、终端以及存储介质 Download PDF

Info

Publication number
CN107729129A
CN107729129A CN201710842005.2A CN201710842005A CN107729129A CN 107729129 A CN107729129 A CN 107729129A CN 201710842005 A CN201710842005 A CN 201710842005A CN 107729129 A CN107729129 A CN 107729129A
Authority
CN
China
Prior art keywords
thread
access
same data
data resource
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710842005.2A
Other languages
English (en)
Inventor
涂斌健
陈东持
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou TCL Mobile Communication Co Ltd
Original Assignee
Huizhou TCL Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huizhou TCL Mobile Communication Co Ltd filed Critical Huizhou TCL Mobile Communication Co Ltd
Priority to CN201710842005.2A priority Critical patent/CN107729129A/zh
Publication of CN107729129A publication Critical patent/CN107729129A/zh
Priority to PCT/CN2018/106215 priority patent/WO2019052576A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于同步锁的多线程处理方法、终端以及存储介质,所述方法包括:当多线程访问同一数据资源时,将所述多线程依照访问时间排序,并依照排序依次访问预设的同步锁;通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源。本发明通过同步锁为多线程设置访问权限,对于具有写权限的线程单独访问同一数据资源,对于具有读访问权限的连续多个线程可以同时访问同一数据资源,这样既满足多线程访问同一数据资源的安全性要求,又可以提高多线程的处理速度,减少了多线程的堵塞时间。

Description

一种基于同步锁的多线程处理方法、终端以及存储介质
技术领域
本发明涉及智能终端技术领域,特别涉及一种基于同步锁的多线程处理方法、终端以及存储介质。
背景技术
最近几年内,处理器厂商受到功耗和温度的限制,同时为了保持高性能运算持续增长,计算机已经朝着多核计算机体系架构方向发展。为了充分利用多核架构,应用程序被拆分成多个可独立运行在单个CPU上面的线程,这样设计程序可以并行执行提高整体运行效率。但是,当使用多个线程来访问同一数据时,容易出现安全问题,例如,多线程都在操作同一数据导致数据不一致或者不准确的问题等。
为了解决上述问题,目前普遍采用同步机制下控制多线程对同一数据资源的访问,以使得在多线程同时访问同一数据资源时,保证所述同一数据资源每次被一个线程独占。但是,当访问所述同一资源的多线程数量较大时,会导致阻塞时间过长,甚至卡顿、应用程序无响应的问题。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于同步锁的多线程处理方法、终端以及存储介质,以解决现有多线程访问同一数据资源时存在的堵塞时间长的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种基于同步锁的多线程处理方法,其包括:
当多线程访问同一数据资源时,将所述多线程依照访问时间排序,并依照排序依次访问预设的同步锁;
通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源。
所述基于同步锁的多线程处理方法,其中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源具体包括:
当第一线程访问同步锁时,检测所述第一线程需要获取的访问权限,其中,所述访问权限包括读访问权限和写访问权限;
当所述第一线程需要获取读访问权限时,检测所述第一线程是否具有写访问权限;
若所述第一线程具有写访问权限,则为所述第一线程配置读访问权限,并控制所述第一线程访问所述同一数据资源。
所述基于同步锁的多线程处理方法,其中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
若所述第一线程不具有写访问权限,则检测所述同一数据资源是否处于被第一写访问线程访问状态;
若未处于被第一写访问线程访问状态,则检测是否存在处于等待状态的第二写访问线程;
当未存在第二写访问线程时,为所述第一线程配置写访问权限,并控制所述第一线程访问所述同一数据资源;
当存在第二写访问线程时,控制所述第一线程线程休眠状态。
所述基于同步锁的多线程处理方法,其中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
若处于被第一写访问线程访问状态,则判断所述第一线程与所述第一写访问线程是否相同;
如果相同,则为所述第一线程配置读访问权限,并控制所述第一线程访问所述同一数据资源,以及将所述第一线程的访问次数加一;
如果不相同,则控制所述第一线程进入休眠状态。
所述基于同步锁的多线程处理方法,其中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
当所述第一线程需要获取写访问权限时,检测所述同一数据资源是否处于空闲状态;
当处于空闲状态时,为所述第一线程配置写访问权限,并控制所述第一线程访问所述同一数据资源。
所述基于同步锁的多线程处理方法,其中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
当未处于空闲状态时,判断访问所述同一数据资源的第二线程的类型,其中,所述类型包括读访问线程和写访问线程;
若所述第二线程的类型为读访问线程,则控制所述第一线程进入等待状态。
所述基于同步锁的多线程处理方法,其中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
若所述第二线程的类型为写访问线程,则检测所述第一线程与所述第二线程是否相同;
若相同,则为所述第一线程配置写访问权限,并控制所述线程访问所述同一数据资源,以及将所述线程的访问次数加一;
若不相同,则控制所述第一线程进入等待状态。
所述基于同步锁的多线程处理方法,其中,所述方法还包括:
当访问所述同一资源的第三线程离开时,判断所述第三线程的访问类型;
若所述第三线程为读访问线程/写访问线程时,则检测所述第三线程是否具有读访问权限/写访问权限,并在其具有读访问权限/写访问权限时获取所述第三线程对应的访问次数;
当所述访问次数为1时,将所述线程移除缓存,并唤醒处于休眠状态的线程;
当所述访问次数大于1时,将所述访问次数减一,并唤醒处于休眠状态的线程。
一种存储介质,其存储有多条指令,所述指令适于由处理器加载并执行如上任一所述的基于同步锁的多线程处理方法。
一种移动终端,其包括:
处理器,适于实现各指令;以及
存储设备,适于存储多条指令,所述指令适于由处理器加载并执行如上任一所述的基于同步锁的多线程处理方法。
有益效果:与现有技术相比,本发明提供了一种基于同步锁的多线程处理方法、终端以及存储介质,所述方法包括:当多线程访问同一数据资源时,将所述多线程依照访问时间排序,并依照排序依次访问预设的同步锁;通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源。本发明通过同步锁为多线程设置访问权限,对于具有写权限的线程单独访问同一数据资源,对于具有读访问权限的连续多个线程可以同时访问同一数据资源,这样既满足多线程访问同一数据资源的安全性要求,又可以提高多线程的处理速度,减少了多线程的堵塞时间。
附图说明
图1为本发明提供的基于同步锁的多线程处理方法较佳实施例的流程图。
图2为本发明提供的终端较佳实施例的结构原理图。
具体实施方式
本发明提供一种基于同步锁的多线程处理方法、终端以及存储介质,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。 应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。 应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
请参照图1,图1为本发明提供的基于同步锁的多线程处理方法的较佳实施例的流程图。所述方法包括:
S10、当多线程访问同一数据资源时,将所述多线程依照访问时间排序,并依照排序依次访问预设的同步锁;
S20、通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源。
本实施例提供了一种基于同步锁的多线程处理方法,在同一数据资源接收到多个线程访问时,将多个线程案子访问时间排序,并依照排序顺序依次访问预设的同步锁;并且通过所述同步锁控制每个线程的访问方式,对于具有写权限的线程,在所述同一数据资源未被其他线程访问时进行访问;对于具有读权限的线程,在所述同一数据资源正在被读访问线程进行访问或者未被其他线程访问时进行访问,即多个连续读访问线程可以同时访问同一数据资源,由于读访问未对同一数据资源进行修改,从而多个读访问线程同时访问同一数据资源不会产生数据不一致或者不准确的问题,同时又可以减少线程的等待时间,进而解决了线程阻塞的问题。
具体的来说,在所述步骤S10中,对于存在热点访问的数据资源,在基于底层分布式存储引擎架设的对象存储系统中,会由基于HTTP协议的不同客户端或者应用程序发起对该数据资源的访问请求,即对同一数据资源存在至多访问线程(记为多线程),上层应用接收该对同一数据资源的多线程访问。而在上层应用接收到对同一数据的多线程时,对上层应用接收到的同一数据资源的对线程进行排序。此外,所述排序可以在对底层存储引擎请求数据资源的不同引擎访问代理上直接进行排序,也可将不同引擎访问代理上的访问请求路由到一个引擎访问代理上进行排序。本发明实施例优选将不同引擎访问代理上的访问请求路由到一个引擎访问代理上进行排序,使得在对并发访问请求进行排序时,无需不同引擎访问代理之间进行状态查询。
进一步,在所述步骤S20中,通过所述同步锁控制线程的访问方式,在所述访问方式中,对于具有写权限的线程(对所述同一数据资源进行修改或者写入操作的线程)单独访问所述同一数据资源;对于具有读权限线程(对所述同一数据资源进行读取操作的线程)多个连续线程(排序后处于连续位置的线程)同时访问所述同一数据资源。此外,所述同心锁为线程配置访问权限,并依据其为线程配置的访问权限以及访问权限对应的访问方式来控制线程对同一数据资源的访问,其中,访问权限包括读访问权限和写访问权限。
实施例一
本实施例将对上述实施例中涉及的同步锁控制多线程访问同一数据资源进行详细说明。此外,本实施例中对需要获取读访问权限并对同一数据资源进行读访问的线程的处理过程进行说明,其他对多线程的排序过程的处理步骤可参考如上所述实施例,在此不再赘述
在本实施例中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源具体可以包括:
S101、当第一线程访问同步锁时,检测所述第一线程需要获取的访问权限,其中,所述访问权限包括读访问权限和写访问权限。
具体地,所述第一线程需要获取的访问权限指的时所述第一线程需要同步锁为其配置的访问权限,所述同步锁中预先设置了一个读访问权限和一个写访问权限。也就是说,检测所述第一线程要获取同步锁中的读访问权限还是写访问权限。此外,所述同步锁配置的写访问权限在同一时间仅一个线程可以获取;读访问权限在同一时间可以多个线程获取。也就是说,在访问所述同一数据资源的多线程中每一时刻仅有一个线程可以具有写访问权限,即不能两个线程同时具有写访问权限。在访问所述同一数据资源的多线程中可以有多线程同时具有写访问权限。
S102、当所述第一线程需要获取读访问权限时,检测所述第一线程是否具有写访问权限,若具有,执行步骤S103,若不具有,执行步骤104。
具体地,在确定第一线程要获取读访问权限后,检测所述第一线程是否已经具有写访问权限,以判断所述同一数据资源是否被其他具有写权限的线程访问。
S103、若所述第一线程具有写访问权限,则为所述第一线程配置读访问权限,并控制所述第一线程访问所述同一数据资源。
具体地,所述第一线程具有写访问权限说明没有其他具有写访问权限的线程通过所述同步锁而进入所述同一数据资源,此时,为所述第一线程配置读访问权限,并控制所述第一线程访问所述同一数据资源。
S104、若所述第一线程不具有写访问权限,则检测所述同一数据资源是否处于被第一写访问线程访问状态,若处于,则执行步骤S108,若未处于,则执行步骤S105。
具体地,当所述第一线程不具有写访问权限时,说明同一数据资源可能处于被具有写访问权限的写访问线程在访问;从而需要检测所述同一数据资源是否处于被第一写访问线程访问状态。
S105、若未处于被第一写访问线程访问状态,则检测是否存在处于等待状态的第二写访问线程,若存在,则执行步骤S107,若未存在,则执行步骤S106。
具体地,所述未处于被第一写访问线程访问状态说明所述同一数据资源处于空闲状态或者被读访问线程访问状态。而由于第一线程不具有写访问权限,则可能存在线程获取写访问权限并处于等待状态,从而需要检测是否存在处于等待状态的第二写访问线程,这样可以避免第一线程对同一数据资源的访问顺序与其进入同步锁的访问顺序不同,而导致处于等待的第二写访问线程处于等待的时间较长,或者一直处于等待状态,从而应用第二写访问线程的反馈速度,甚至无法反馈。此外,这样也保证了访问同一数据资源的多个读访问权限在访问时间上是连续的,符号同步锁设置的访问方式。
S106、当未存在第二写访问线程时,为所述第一线程配置写访问权限,并控制所述第一线程访问所述同一数据资源。
具体地,未存在第二写访问线程,说明所述同一数据资源处于空闲状态或者被读访问线程访问状态,并且若同一数据资源被读访问线程访问,访问所述同一数据资源的读访问线程与第一线程为连续线程。
S107、当存在第二写访问线程时,控制所述第一线程线程休眠状态。
具体地,当存在第二写访问线程时,则不未所述第一线程配置读访问权限,同时控制其进入休眠状态。
S108、若处于被第一写访问线程访问状态,则判断所述第一线程与所述第一写访问线程是否相同;若相同,执行步骤S109,若不相同,执行110。
S109、如果相同,则为所述第一线程配置读访问权限,并控制所述第一线程访问所述同一数据资源,以及将所述第一线程的访问次数加一。
具体地,记录所述第一线程的访问次数,以便于后续根据所述访问次数释放所述线程。
S110、如果不相同,则控制所述第一线程进入休眠状态。
实施例二
本实施例中将对需要获取写访问权限并对同一数据资源进行读访问的线程的处理过程进行说明,其他对多线程的排序过程的处理步骤以及读权限的处理步骤可参考如上所述实施例,在此不再赘述。
在本实施例中,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源具体可以包括:
S201、当第一线程访问同步锁时,检测所述第一线程需要获取的访问权限,其中,所述访问权限包括读访问权限和写访问权限。
S202、当所述第一线程需要获取写访问权限时,检测所述同一数据资源是否处于空闲状态,若处于空闲,执行步骤S203,若未处于空闲,执行步骤S204;
S203、当处于空闲状态时,为所述第一线程配置写访问权限,并控制所述第一线程访问所述同一数据资源;
S204、当未处于空闲状态时,判断访问所述同一数据资源的第二线程的类型,若为读访问线程,执行步骤S205,若写访问线程,执行步骤206;
S205、若所述第二线程的类型为读访问线程,则控制所述第一线程进入等待状态;
S206、若所述第二线程的类型为写访问线程,则检测所述第一线程与所述第二线程是否相同;若相同,执行步骤S207,若不相同,执行步骤S208;
S207、若相同,则为所述第一线程配置写访问权限,并控制所述线程访问所述同一数据资源,以及将所述线程的访问次数加一;
S208、若不相同,则控制所述第一线程进入等待状态。
本实施例根据同一资源的访问状态确定是否为第一线程配置写访问权限,以控制所述第一线程对所述同一数据资源进行访问,实现了写访问进程仅能单独访问所述同一数据资源,避免了由于写访问请求对同一数据资源的写入或修改,而影响数据的一致性。
实施例三
本实施例中将对线程离开同步锁的过程进行说明,其他对多线程的处理步骤可参考如上所述实施例,在此不再赘述。
本实施例提供的基于同步锁的多线程处理方法,其还包括:
S301、当访问所述同一资源的第三线程离开时,判断所述第三线程的访问类型;
S302、若所述第三线程为读访问线程/写访问线程时,则检测所述第三线程是否具有读访问权限/写访问权限,并在其具有读访问权限/写访问权限时获取所述第三线程对应的访问次数;
S303、当所述访问次数为1时,将所述线程移除缓存,并唤醒处于休眠状态的线程;
S304、当所述访问次数大于1时,将所述访问次数减一,并唤醒处于休眠状态的线程。
本实施通过在第三线程离开同步锁进入同一数据资源之前,对第一线程再做一次权限检测,并在其不具有其需进行的访问操作对应的权限时,提示异常,在具有其需进行的访问操作对应的权限时,检测其对应的访问次数,如果访问次数大于1,将将访问次数减一,如果等于1则将所述第三线程移除缓存,说明书执行完当前的访问操作即可以释放所述第三线程。
本发明还提供了一种存储介质,其存储有多条指令,所述指令适于由处理器加载并执行如上任一所述的基于同步锁的多线程处理方法。
本发明还提供了一种终端,如图2所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器30通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于同步锁的多线程处理方法,其特征在于,其包括:
当多线程访问同一数据资源时,将所述多线程依照访问时间排序,并依照排序依次访问预设的同步锁;
通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源。
2.根据权利要求1所述基于同步锁的多线程处理方法,其特征在于,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源具体包括:
当第一线程访问同步锁时,检测所述第一线程需要获取的访问权限,其中,所述访问权限包括读访问权限和写访问权限;
当所述第一线程需要获取读访问权限时,检测所述第一线程是否具有写访问权限;
若所述第一线程具有写访问权限,则为所述第一线程配置读访问权限,并控制所述第一线程访问所述同一数据资源。
3.根据权利要求2所述基于同步锁的多线程处理方法,其特征在于,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
若所述第一线程不具有写访问权限,则检测所述同一数据资源是否处于被第一写访问线程访问状态;
若未处于被第一写访问线程访问状态,则检测是否存在处于等待状态的第二写访问线程;
当未存在第二写访问线程时,为所述第一线程配置写访问权限,并控制所述第一线程访问所述同一数据资源;
当存在第二写访问线程时,控制所述第一线程线程休眠状态。
4.根据权利要求2所述基于同步锁的多线程处理方法,其特征在于,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
若处于被第一写访问线程访问状态,则判断所述第一线程与所述第一写访问线程是否相同;
如果相同,则为所述第一线程配置读访问权限,并控制所述第一线程访问所述同一数据资源,以及将所述第一线程的访问次数加一;
如果不相同,则控制所述第一线程进入休眠状态。
5.根据权利要求2所述基于同步锁的多线程处理方法,其特征在于,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
当所述第一线程需要获取写访问权限时,检测所述同一数据资源是否处于空闲状态;
当处于空闲状态时,为所述第一线程配置写访问权限,并控制所述第一线程访问所述同一数据资源。
6.根据权利要求5所述基于同步锁的多线程处理方法,其特征在于,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
当未处于空闲状态时,判断访问所述同一数据资源的第二线程的类型,其中,所述类型包括读访问线程和写访问线程;
若所述第二线程的类型为读访问线程,则控制所述第一线程进入等待状态。
7.根据权利要求6所述基于同步锁的多线程处理方法,其特征在于,所述通过所述同步锁控制具有写权限线程单独访问所述同一数据资源、以及具有读权限的连续多线程同时访问所述同一数据资源还包括:
若所述第二线程的类型为写访问线程,则检测所述第一线程与所述第二线程是否相同;
若相同,则为所述第一线程配置写访问权限,并控制所述线程访问所述同一数据资源,以及将所述线程的访问次数加一;
若不相同,则控制所述第一线程进入等待状态。
8.根据权利要求1-7所述基于同步锁的多线程处理方法,其特征在于,所述方法还包括:
当访问所述同一资源的第三线程离开时,判断所述第三线程的访问类型;
若所述第三线程为读访问线程/写访问线程时,则检测所述第三线程是否具有读访问权限/写访问权限,并在其具有读访问权限/写访问权限时获取所述第三线程对应的访问次数;
当所述访问次数为1时,将所述线程移除缓存,并唤醒处于休眠状态的线程;
当所述访问次数大于1时,将所述访问次数减一,并唤醒处于休眠状态的线程。
9.一种存储介质,其特征在于,其存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-8任一所述的基于同步锁的多线程处理方法。
10.一种终端,其特征在于,其包括:
处理器,适于实现各指令;以及
存储设备,适于存储多条指令,所述指令适于由处理器加载并执行如权利要求1-8任一所述的基于同步锁的多线程处理方法。
CN201710842005.2A 2017-09-18 2017-09-18 一种基于同步锁的多线程处理方法、终端以及存储介质 Pending CN107729129A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710842005.2A CN107729129A (zh) 2017-09-18 2017-09-18 一种基于同步锁的多线程处理方法、终端以及存储介质
PCT/CN2018/106215 WO2019052576A1 (zh) 2017-09-18 2018-09-18 一种基于同步锁的多线程处理方法、终端以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710842005.2A CN107729129A (zh) 2017-09-18 2017-09-18 一种基于同步锁的多线程处理方法、终端以及存储介质

Publications (1)

Publication Number Publication Date
CN107729129A true CN107729129A (zh) 2018-02-23

Family

ID=61207606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710842005.2A Pending CN107729129A (zh) 2017-09-18 2017-09-18 一种基于同步锁的多线程处理方法、终端以及存储介质

Country Status (2)

Country Link
CN (1) CN107729129A (zh)
WO (1) WO2019052576A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213583A (zh) * 2018-07-25 2019-01-15 中国科学院计算技术研究所 一种通过软硬件协同支持读写性能隔离的i/o调度器
WO2019052576A1 (zh) * 2017-09-18 2019-03-21 惠州Tcl移动通信有限公司 一种基于同步锁的多线程处理方法、终端以及存储介质
WO2019195969A1 (zh) * 2018-04-08 2019-10-17 华为技术有限公司 数据同步处理的方法和装置
CN111985977A (zh) * 2020-09-07 2020-11-24 中国银行股份有限公司 批量发券方法及装置
CN112764941A (zh) * 2021-01-26 2021-05-07 北京字节跳动网络技术有限公司 资源访问方法、装置、电子设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978330B1 (en) * 2002-04-04 2005-12-20 Applied Micro Circuits Corporation Shared resource access via declarations that contain a sequence number of a packet
US20060242644A1 (en) * 1999-12-21 2006-10-26 Blue Reginald V Architecture for a read/write thread lock
US20110161539A1 (en) * 2009-12-31 2011-06-30 International Business Machines Corporation Opportunistic use of lock mechanism to reduce waiting time of threads to access a shared resource
US20140026143A1 (en) * 2011-03-31 2014-01-23 Fujitsu Limited Exclusive access control method and computer product
CN105045938A (zh) * 2015-09-17 2015-11-11 浪潮(北京)电子信息产业有限公司 一种元数据并发访问方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005486B (zh) * 2006-12-28 2011-07-27 金蝶软件(中国)有限公司 一种资源访问控制方法及系统
US8973004B2 (en) * 2009-06-26 2015-03-03 Oracle America, Inc. Transactional locking with read-write locks in transactional memory systems
CN103729239A (zh) * 2013-11-18 2014-04-16 芜湖大学科技园发展有限公司 一种镜像元数据的分布式锁算法
CN105224251B (zh) * 2015-09-28 2018-09-25 浪潮(北京)电子信息产业有限公司 一种基于Linux的读写锁优化方法和系统
CN107729129A (zh) * 2017-09-18 2018-02-23 惠州Tcl移动通信有限公司 一种基于同步锁的多线程处理方法、终端以及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242644A1 (en) * 1999-12-21 2006-10-26 Blue Reginald V Architecture for a read/write thread lock
US6978330B1 (en) * 2002-04-04 2005-12-20 Applied Micro Circuits Corporation Shared resource access via declarations that contain a sequence number of a packet
US20110161539A1 (en) * 2009-12-31 2011-06-30 International Business Machines Corporation Opportunistic use of lock mechanism to reduce waiting time of threads to access a shared resource
US20140026143A1 (en) * 2011-03-31 2014-01-23 Fujitsu Limited Exclusive access control method and computer product
CN105045938A (zh) * 2015-09-17 2015-11-11 浪潮(北京)电子信息产业有限公司 一种元数据并发访问方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019052576A1 (zh) * 2017-09-18 2019-03-21 惠州Tcl移动通信有限公司 一种基于同步锁的多线程处理方法、终端以及存储介质
WO2019195969A1 (zh) * 2018-04-08 2019-10-17 华为技术有限公司 数据同步处理的方法和装置
CN109213583A (zh) * 2018-07-25 2019-01-15 中国科学院计算技术研究所 一种通过软硬件协同支持读写性能隔离的i/o调度器
CN111985977A (zh) * 2020-09-07 2020-11-24 中国银行股份有限公司 批量发券方法及装置
CN112764941A (zh) * 2021-01-26 2021-05-07 北京字节跳动网络技术有限公司 资源访问方法、装置、电子设备及计算机可读存储介质
CN112764941B (zh) * 2021-01-26 2024-05-31 北京字节跳动网络技术有限公司 资源访问方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
WO2019052576A1 (zh) 2019-03-21

Similar Documents

Publication Publication Date Title
CN107729129A (zh) 一种基于同步锁的多线程处理方法、终端以及存储介质
US10402222B2 (en) Task migration method and apparatus
US9524117B2 (en) Control of page access in memory
CN106980492A (zh) 用于确定处理器核上的工作布置的系统、方法和设备
US8453150B2 (en) Multithread application-aware memory scheduling scheme for multi-core processors
JP6322838B2 (ja) システム・オン・チップにおけるメモリアクセスの電力管理
US20160116509A1 (en) Electronic device and method for determining defect in an electronic device
EP3345070B1 (en) Systems and methods for dynamically adjusting memory state transition timers
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
CN101410905A (zh) 减小非易失性存储器读取延迟的方法和设备
CN104380257A (zh) 在处理器核之间调度任务
CN104244381A (zh) 唤醒控制方法、装置和终端设备
CN102934072A (zh) 信息处理设备及方法
CN103543815A (zh) 信息处理设备和信息处理方法
JP2018508886A (ja) マルチプロセッサシステムにおける揮発性メモリ保守イベントのスケジューリング
JP2017502421A (ja) メモリアクセスパターンに基づいてdramページ競合を解消するためのシステムおよび方法
US10740496B2 (en) Method and apparatus for operating multi-processor system in electronic device
CN106535245A (zh) 一种异系统测量方法及多模移动终端
CN104714839A (zh) 一种控制进程生命期的方法和装置
CN110168643B (zh) 经由交叉连接的共享存储体资源的同时的存储器存储体访问
CN104424142B (zh) 一种多核处理器系统中访问共享资源的方法与装置
CN110168644B (zh) 用于在存储体存储器单元阵列中提供行篡改保护的系统、方法和计算机程序
CN106125889A (zh) 一种唤醒源处理方法和装置
CN110998524A (zh) 处理配置文件的方法、处理单元、触摸芯片、装置及介质
JP2018508884A (ja) 揮発性メモリ保守イベントのカーネルスケジューリングを提供するためのシステムおよび方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180223