CN109558249A - 一种并发操作的控制方法及装置 - Google Patents

一种并发操作的控制方法及装置 Download PDF

Info

Publication number
CN109558249A
CN109558249A CN201710895710.9A CN201710895710A CN109558249A CN 109558249 A CN109558249 A CN 109558249A CN 201710895710 A CN201710895710 A CN 201710895710A CN 109558249 A CN109558249 A CN 109558249A
Authority
CN
China
Prior art keywords
data
thread
information
identifier information
data processing
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.)
Granted
Application number
CN201710895710.9A
Other languages
English (en)
Other versions
CN109558249B (zh
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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201710895710.9A priority Critical patent/CN109558249B/zh
Publication of CN109558249A publication Critical patent/CN109558249A/zh
Application granted granted Critical
Publication of CN109558249B publication Critical patent/CN109558249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种并发操作的控制方法及装置,涉及数据处理技术领域,为解决现有的通过令牌发送方式控制多个线程并发操作时,当发送令牌控制中心出现故障时造成的并发操作混乱无序的问题。本发明的方法包括:接收多个数据处理请求;将全部所述多个线程添加至等待队列中;从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息;在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。本发明适合应用在对并发操作的控制中。

Description

一种并发操作的控制方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种并发操作的控制方法及装置。
背景技术
随着大数据技术的逐渐发展,数据已变得很关键。为了便于数据共享,通常可以将共享数据存储在一个数据库中,因此各个线程均可以在数据库中对数据进行处理等。为了避免各个线程间数据处理冲突,需要对并发执行的操作采取一定的控制措施。
目前,主要是通过发放令牌方式对并发执行的操作进行控制,即获取到令牌的线程可以对共享数据进行获取使用,而未得到令牌的线程将无法获取共享数据。然而发放令牌的方式需要设定一个令牌发放中心,并通过该控制对各个线程的并发操作进行控制,从而使得当令牌发放中心发生故障时,多个线程的并发操作将会变的混乱无序,进而导致多个线程的并发操作无法正常运行的问题。
发明内容
鉴于上述问题,本发明提供一种并发操作的控制方法及装置,主要目的在于控制同时请求数据处理的多个线程有序的对数据进行处理。
为解决上述技术问题,第一方面,本发明提供了一种并发操作的控制方法,该方法包括:
接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息;
将全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程;
从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息;
在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。
可选的,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理包括:
在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程;
触发所述与所述第一标识信息对应的线程对所述数据进行处理。
可选的,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理之前,所述方法还包括:
创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息;
检测所述与所述数据对应的状态标识是否为可处理状态标识。
可选的,所述每个数据处理请求中还携带有请求时间信息,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理包括:
若所述与所述数据对应的状态标识是可处理状态标识,则检测所述与所述第一标识信息对应的线程发送的数据处理请求中携带的请求时间信息,与所述数据上一次处理的时间信息之间的差值是否在预设阈值范围内;
若是,则将所述第一标识信息添加至所述数据记录表中并更新所述数据对应的状态标识;
触发与所述第一标识信息对应的线程对所述数据进行处理。
可选的,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理之后,所述方法还包括:
记录与所述第一标识信息对应的线程对所述数据进行处理的时间信息;
根据所述时间信息对所述数据记录表中的时间标识进行更新。
第二方面,本发明还提供了一种并发操作的控制装置,该装置包括:
接收单元,用于接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息;
添加单元,用于将全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程;
提取单元,用于从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息;
触发单元,用于在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。
可选的,所述触发单元包括:
提取模块,用于在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程;
触发模块,用于触发所述与所述第一标识信息对应的线程对所述数据进行处理。
可选的,所述触发单元还包括:
创建模块,用于创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息;
检测模块,用于检测所述与所述数据对应的状态标识是否为可处理状态标识。
可选的,所述触发模块包括:
检测子模块,用于若所述与所述数据对应的状态标识是可处理状态标识,则检测所述与所述第一标识信息对应的线程发送的数据处理请求中携带的请求时间信息,与所述数据上一次处理的时间信息之间的差值是否在预设阈值范围内;
添加子模块,用于若是,则将所述第一标识信息添加至所述数据记录表中;
更新子模块,用于更新所述数据对应的状态标识;
触发子模块,用于触发与所述第一标识信息对应的线程对所述数据进行处理。
可选的,所述装置还包括:
记录单元,用于记录与所述第一标识信息对应的线程对所述数据进行处理的时间信息;
更新单元,用于根据所述时间信息对所述数据记录表中的时间标识进行更新。
为了实现上述目的,根据本发明的第三方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的并发操作的控制方法。
为了实现上述目的,根据本发明的第四方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的并发操作的控制方法。
借由上述技术方案,本发明提供的并发操作的控制方法及装置,对于现有技术在对并发操作进行处理时,通过向各个线程发放令牌或者对数据进行加密,使得当令牌发放中心出现故障时出现资源竞争混乱或者数据死锁,本发明通过将各个线程同时发送的数据处理请求进行接收并全部添加到等待队列中,而后从线程携带的全部标识信息中提取任意一个标识信息,并且在等待一定时间间隔后触发提取到的标识信息对应的线程对数据进行处理,因此相比于现有技术,本发明在对多个线程并发请求数据处理时,可以确保在多个等待的线程中只提取一个线程,并且该线程在等待一定时间间隔后确保将数据处理任务分配给该线程后触发该线程对数据进行处理,可以确保只有一个线程对数据进行处理,可以有序的控制多个线程对共享数据进行处理;此外,在触发线程对数据进行处理之前,对数据状态进行检测,确保在数据可处理状态下对控制线程对数据进行处理,避免了在数据不可处理时仍然对数据进行处理造成的数据处理错误的问题,从而提高了并发操作控制的准确性。同时,在控制线程对数据进行处理之后将此次处理的时间添加至数据中,以使得根据该时间控制下一次数据处理,避免了在无需对数据处理时仍然控制其他线程对数据处理造成的资源浪费的问题,从而提高了资源利用率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种并发操作的控制方法流程图;
图2示出了本发明实施例提供的另一种并发操作的控制方法流程图;
图3示出了本发明实施例提供的一种控制线程处理数据流程图;
图4示出了本发明实施例提供的一种并发操作的控制装置的组成框图;
图5示出了本发明实施例提供的另一种并发操作的控制装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了有序的控制多个线程的并发操作,本发明实施例提供了一种并发操作的控制方法,如图1所示,该方法包括:
101、接收多个数据处理请求。
其中,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息。而所述数据请求可以为对数据进行更新的请求,也可以为对数据进行读取的请求等,所述与线程对应的标识信息可以为线程在发送数据处理请求临时生成的标识信息,也可以为预先设置的与各个线程对应的编号或名称标识等,本发明实施例不做具体限定。
进一步的,本步骤中所述多个线程同时发送可以为同一时刻,也可以为在相差一定时间范围内的同时。例如,可以为多个线程在时刻08:00同时发送数据处理请求,也可以为多个线程在时间范围08:00-08:01内同时发送的数据处理请求,且相差的一定时间范围可以为5秒、30秒或1分钟等,本发明实施例不做具体限定。
需要说明的是,对于本发明实施例的执行主体可以为配置在数据处理器中用于控制线程并发操作的装置,当该装置检测到多个线程发送数据处理请求时,说明此时需要对多个线程的并发操作进行控制,触发对各个线程发送的数据处理请求的接收指令,进而实现对多个线程并发操作的控制。
102、将全部所述多个线程添加至等待队列中。
其中,所述等待队列中保存有全部等待对所述数据进行处理的线程。
具体地,所述步骤102可以为获取各个线程发送数据处理请求的时间,并按照时间的先后顺序依次将线程添加至等待队列中,还可以随机将线程依次添加至等待队列中,本发明实施例不做具体限定。
103、从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息。
其中,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息。而所述第一标识信息用于标识对数据进行处理的线程的信息。对于本发明实施例,当多个线程同时发送数据处理请求的并发操作时,此时从多个数据处理请求中随机提取一个线程并分配该线程进行数据处理。具体地,所述步骤103可以为利用现有技术中随机抽取程序对多个数据处理请求中携带的多个标识信息进行随机抽取,本发明实施例对此不再进行赘述。
104、在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。
其中,所述预置时间间隔可以为1秒、3秒或10秒等,本发明实施例不做具体限定。
对于本发明实施例,由于在上述步骤103中已经确定用于对数据进行处理的线程为与第一标识信息对应的线程,从而在本步骤中在等待的预置时间间隔后,可以根据第一标识信息依次对等待队列中的各个线程进行检测,即当检测到与第一标识信息对应的线程时即触发该线程对数据进行处理,而当检测到的线程与第一标识不符时,则该线程将在等待队列中继续等待或结束对数据处理的请求等,本发明实施例对此不做限定。
例如,接收到3个线程同时发送的对数据A进行更新的请求,且每个数据更新请求中分别携带有与各个线程分别对应的标识信息为线程1、线程2和线程3,将这三个线程按照请求的时间先后顺序依次添加到等待队列中得到:线程2-线程1-线程3,随机提取到的用于对数据A进行更新的线程的标识信息为“线程3”,则在时间间隔5秒后在等待队列中依次检测线程1与标识信息“线程3”不符,线程1继续等待,线程2与标识信息“线程3”不符,线程2退出对数据A进行更新的等待队列,线程3与标识信息“线程3”相匹配。触发线程3对数据A进行更新。
本发明实施例提供的并发操作的控制方法,对于现有技术在对并发操作进行处理时,通过向各个线程发放令牌或者对数据进行加密,使得当令牌发放中心出现故障时出现资源竞争混乱或者数据死锁,本发明通过将各个线程同时发送的数据处理请求进行接收并全部添加到等待队列中,而后从线程携带的全部标识信息中提取任意一个标识信息,并且在等待一定时间间隔后触发提取到的标识信息对应的线程对数据进行处理。因此相比于现有技术,本发明在对多个线程并发请求数据处理时,可以确保在多个等待的线程中只提取一个线程,并且该线程在等待一定时间间隔后确保将数据处理任务分配给该线程后触发该线程对数据进行处理,可以确保只有一个线程对数据进行处理,可以有序的控制多个线程对共享数据进行处理。
进一步的,作为对图1所示实施例的细化及扩展,本发明实施例还提供了另一种并发操作的控制方法,如图2所示。
201、接收多个数据处理请求。
其中,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息。而所述数据请求、标识信息的概念解释可以参考所述步骤101中相应描述,在此不再赘述。
202、将全部所述多个线程添加至等待队列中。
其中,所述等待队列中保存有全部等待对所述数据进行处理的线程。
为了提高并发操作控制的准确性,本发明实施例在本步骤之前,所述方法还可以包括:对所述多个线程的数据处理权限进行验证。具体地,可以预先在各个具有数据处理权限的线程中添加预置标识符,配置有该预置标识符的线程为具有对数据进行处理权限的线程,从而在获取到数据处理请求后通过检测各个线程是否包含有该预置标识符,从而本步骤为将具有数据处理权限的线程添加至等待队列中。
对于本发明实施例,通过首先将全部具有数据处理权限的线程添加到等待队列中,而后再从整个等待队列中提取一个线程对数据处理进行控制,可以避免当多个线程同时发送数据处理请求时将各个线程分别进行控制造成的多个线程同时处理的问题,从而提高了并发操作控制的准确性。
203、从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息。
其中,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息。而所述第一标识信息可以为与各个线程携带的相同的标识信息,也可以为各个线程在发送数据处理请求时生成的与各个线程唯一对应的标识信息,具体的可以为根据线程请求时间、线程标识信息等生成的第一标识信息。例如,发送数据处理请求的多个线程中的一个线程携带的标识信息为线程A,则若提取的第一标识信息为与线程A对应的,则该第一标识信息可以为线程A的标识信息“线程A”,还可以为线程A在发送请求过程中临时生成的标识信息如“线程A-1410-Data”。
对于本发明实施例,通过提取第一标识信息,并用该标识信息标识用于处理数据的线程,从而可以在对并发操作进行控制时,查找与该标识信息对应的线程进行控制即可,从而避免了从大量无序的并发线程中进行控制造成的并发操作控制错误的问题,且简化了操作节约了处理时间,从而提高了并发操作控制的准确性和效率。
204、在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程。
其中,所述预置时间间隔可以为3秒、5秒或10秒等。需要说明的是,通过上述步骤,已经确定对数据进行处理的线程为与第一标识信息对应的线程,从而在本步骤中从等待队列中对该线程进行提取即可,确保了只有唯一一个线程在对数据进行处理,避免了多个并发线程同时操作的问题,提高了并发操作控制的有序性。
205、触发所述与所述第一标识信息对应的线程对所述数据进行处理。
本步骤所述的触发对数据进行处理可以为触发对数据进行更新,或者触发对数据进行读取等,具体地本步骤可以为通过预置接口触发与第一标识信息对应的线程,也可以为通过调用函数触发与第一标识信息对应的线程等,本发明实施例不做具体限定。
为了提高并发操作控制的准确性,对于本发明实施例,在所述步骤205之前,所述方法还可以包括:创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息;检测所述与所述数据对应的状态标识是否为可处理状态标识。而所述状态标识可以根据实际情况进行设定,例如当数据处理为对数据进行更新时,数据对应的状态标识可以为待更新、已更新、正在更新等;当数据处理为对数据进行读取时,数据对应的状态标识可以为待读取、已读取等。而所述可处理状态也可以根据实际情况进行设定,如上述数据更新时对应的状态标识信息中,待更新即可以为可处理状态,而已更新和正在更新则为不可处理状态。
对于本发明实施例,通过将数据配置记录有数据状态的记录表,从而可以根据记录表中记录的数据状态控制是否触发线程对数据进行处理,确保在数据需要处理且为可处理状态下,触发唯一线程对数据进行处理,提高了并发操作控制的准确性。
此时,所述步骤205包括:若所述与所述数据对应的状态标识是可处理状态标识,则检测所述与所述第一标识信息对应的线程发送的数据处理请求中携带的请求时间信息,与所述数据上一次处理的时间信息之间的差值是否在预设阈值范围内;若是,则将所述第一标识信息添加至所述数据记录表中并更新所述数据对应的状态标识;触发与所述第一标识信息对应的线程对所述数据进行处理。其中,所述预设阈值范围可以为5秒、一小时或一天等,可以根据具体情况进行设置,本发明实施例不做具体限定。例如当数据处理为每天一次更新时,那么预设时间阈值范围可以为12小时-24小时,则可以通过该范围判断与第一标识信息对应的线程此次请求时间与数据记录表中的上一次时间是否为不同的两天,当判断结果为不是同一天时,此时将第一标识信息添加至数据记录表中,标识可以处理该数据且控制与第一标识信息对应的线程对该数据进行处理。而当检测结果为该数据为不可处理状态或者在处理时间阈值范围外时,则控制各个线程结束对数据的处理请求。
对于本发明实施例,通过确定数据可以处理且需要处理时,将用于对数据进行处理的标识添加到数据记录表中,再触发与标识对应的线程进行处理,从多方面确保了数据处理的可行性和必要性,并确保了只有唯一的线程对数据进行处理,提高了并发操作控制的准确性和有序性。
206、记录与所述第一标识信息对应的线程对所述数据进行处理的时间信息。
对于本发明实施例,通过对此次线程的数据处理时间进行记录,以便于当接收到下一个线程发送数据处理请求时,根据此次处理时间确定是否需要出发下一个线程的处理,避免对数据不必要的重复处理,节约了资源。
207、根据所述时间信息对所述数据记录表中的时间标识进行更新。
具体地,所述步骤207为将数据记录表中记录的上一次数据处理时间删除并将当前线程对应的数据处理时间添加至数据记录表中。对于本发明实施例,通过在每次线程对数据进行处理之后,将此次线程的处理时间添加至数据记录表中,可以在其他线程在对该数据进行处理之前通过记录的时间标识判断该数据是否刚刚经过处理,避免了当数据无需处理时仍然对数据进行处理造成的资源浪费的问题,从而提高了资源利用率。
进一步的,根据步骤201-207所述的方法并结合图3所示流程图,本发明实施例还可以提供一从线程请求数据处理角度,结合具体的应用场景下并发操作控制的实施方式,具体的如下所述:
通过在线程中配置预先设定的权限标识符,使得各个线程获得对竞争资源的访问权限。在接收到各个线程发送的共享资源使用请求时,通过检测共享资源配置的数据记录表中的数据状态标识确定共享资源此时未被其他线程占有,并且在共享资源状态为可访问时,控制在数据中添加标识用以标识对数据进行处理的线程,即设置占有标识并将共享资源状态更新为正在处理中,在一段时间后检测设置的占有标识对应的线程,当一致时即触发该线程使用共享资源,控制与占有标识不一致的线程退出对共享资源的使用请求。当与占有标识对应的线程对共享资源使用完成时,还原资源状态并退出。
但需要说明的是,上述应用场景所述的具体实施方式仅仅是示例性的,并非本发明实施例的唯一具体实施方式,在此仅为符合本发明所述的方法的优化实施方式之一。
进一步的,作为对上述图1所示方法的实现,本发明实施例还提供了一种并发操作的控制装置,用于对上述图1所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图4所示,该装置包括:接收单元31、添加单元32、提取单元33、触发单元34,其中
接收单元31,可以用于接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息。
添加单元32,可以用于将所述接收单元31接收到的数据处理请求中对应的全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程。
提取单元33,可以用于从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息。
触发单元34,可以用于在预置时间间隔后触发与所述提取单元33提取到的第一标识信息对应的线程对所述数据进行处理。
进一步的,作为对上述图2所示方法的实现,本发明实施例还提供了另一种并发操作的控制装置,用于对上述图2所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图5所示,该装置包括:接收单元41、添加单元42、提取单元43、触发单元44,其中
接收单元41,可以用于接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息。
添加单元42,可以用于将所述接收单元31接收到的数据处理请求中对应的全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程。
提取单元43,可以用于从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息。
触发单元44,可以用于在预置时间间隔后触发与所述提取单元33提取到的第一标识信息对应的线程对所述数据进行处理。
进一步的,
所述提取单元43,具体可以用于在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程;
所述触发单元44,具体可以用于触发所述与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述装置还包括:
创建单元45,可以用于创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息。
检测单元46,可以用于检测所述与所述数据对应的状态标识是否为可处理状态标识。
进一步的,所述触发单元44包括:
检测模块4401,可以用于若所述与所述数据对应的状态标识是可处理状态标识,则检测所述与所述第一标识信息对应的线程发送的数据处理请求中携带的请求时间信息,与所述数据上一次处理的时间信息之间的差值是否在预设阈值范围内。
添加模块4402,可以用于若是,则将所述第一标识信息添加至所述数据记录表中。
更新模块4403,可以用于更新所述数据对应的状态标识。
触发模块4404,可以用于触发与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述装置还包括:
记录单元47,可以用于记录与所述第一标识信息对应的线程对所述数据进行处理的时间信息。
更新单元48,可以用于根据所述时间信息对所述数据记录表中的时间标识进行更新。
本发明实施例提供的另一种并发操作的控制计算装置。所述装置包括:接收单元、添加单元、提取单元及触发单元。对于现有技术在对并发操作进行处理时,通过向各个线程发放令牌或者对数据进行加密,使得当令牌发放中心出现故障时出现资源竞争混乱或者数据死锁,本发明通过将各个线程同时发送的数据处理请求进行接收并全部添加到等待队列中,而后从线程携带的全部标识信息中提取任意一个标识信息,并且在等待一定时间间隔后触发提取到的标识信息对应的线程对数据进行处理,因此相比于现有技术,本发明在对多个线程并发请求数据处理时,可以确保在多个等待的线程中只提取一个线程,并且该线程在等待一定时间间隔后确保将数据处理任务分配给该线程后触发该线程对数据进行处理,可以确保只有一个线程对数据进行处理,可以有序的控制多个线程对共享数据进行处理;此外,在触发线程对数据进行处理之前,对数据状态进行检测,确保在数据可处理状态下对控制线程对数据进行处理,避免了在数据不可处理时仍然对数据进行处理造成的数据处理错误的问题,从而提高了并发操作控制的准确性。同时,在控制线程对数据进行处理之后将此次处理的时间添加至数据中,以使得根据该时间控制下一次数据处理,避免了在无需对数据处理时仍然控制其他线程对数据处理造成的资源浪费的问题,从而提高了资源利用率。
所述文本处理装置包括处理器和存储器,上述接收单元31、添加单元32、提取单元33、触发单元34等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高并发操作控制的有序性和准确性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述并发操作的控制方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述并发操作的控制方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息;将全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程;从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息;在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理包括:
在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程;
触发所述与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理之前,所述方法还包括:
创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息;
检测所述与所述数据对应的状态标识是否为可处理状态标识。
进一步的,所述每个数据处理请求中还携带有请求时间信息,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理包括:
若所述与所述数据对应的状态标识是可处理状态标识,则检测所述与所述第一标识信息对应的线程发送的数据处理请求中携带的请求时间信息,与所述数据上一次处理的时间信息之间的差值是否在预设阈值范围内;
若是,则将所述第一标识信息添加至所述数据记录表中并更新所述数据对应的状态标识;
触发与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理之后,所述方法还包括:
记录与所述第一标识信息对应的线程对所述数据进行处理的时间信息;
根据所述时间信息对所述数据记录表中的时间标识进行更新。
本发明实施例中的设备可以是服务器、PC、PAD、手机等。
本发明实施例还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息;将全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程;从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息;在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理包括:
在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程;
触发所述与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理之前,所述方法还包括:
创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息;
检测所述与所述数据对应的状态标识是否为可处理状态标识。
进一步的,所述每个数据处理请求中还携带有请求时间信息,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理包括:
若所述与所述数据对应的状态标识是可处理状态标识,则检测所述与所述第一标识信息对应的线程发送的数据处理请求中携带的请求时间信息,与所述数据上一次处理的时间信息之间的差值是否在预设阈值范围内;
若是,则将所述第一标识信息添加至所述数据记录表中并更新所述数据对应的状态标识;
触发与所述第一标识信息对应的线程对所述数据进行处理。
进一步的,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理之后,所述方法还包括:
记录与所述第一标识信息对应的线程对所述数据进行处理的时间信息;
根据所述时间信息对所述数据记录表中的时间标识进行更新。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种并发操作的控制方法,其特征在于,所述方法包括:
接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息;
将全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程;
从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息;
在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理包括:
在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程;
触发所述与所述第一标识信息对应的线程对所述数据进行处理。
3.根据权利要求2所述的方法,其特征在于,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理之前,所述方法还包括:
创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息;
检测所述与所述数据对应的状态标识是否为可处理状态标识。
4.根据权利要求3所述的方法,其特征在于,所述每个数据处理请求中还携带有请求时间信息,所述触发所述与所述第一标识信息对应的线程对所述数据进行处理包括:
若所述与所述数据对应的状态标识是可处理状态标识,则检测所述与所述第一标识信息对应的线程发送的数据处理请求中携带的请求时间信息,与所述数据上一次处理的时间信息之间的差值是否在预设阈值范围内;
若是,则将所述第一标识信息添加至所述数据记录表中并更新所述数据对应的状态标识;
触发与所述第一标识信息对应的线程对所述数据进行处理。
5.根据权利要求3或4所述的方法,其特征在于,所述在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理之后,所述方法还包括:
记录与所述第一标识信息对应的线程对所述数据进行处理的时间信息;
根据所述时间信息对所述数据记录表中的时间标识进行更新。
6.一种并发操作的控制装置,其特征在于,所述装置包括:
接收单元,用于接收多个数据处理请求,所述多个数据处理请求为多个线程同时发送的,且所述每个数据处理请求中均携带有与所述线程对应的标识信息;
添加单元,用于将全部所述多个线程添加至等待队列中,所述等待队列中保存有全部等待对所述数据进行处理的线程;
提取单元,用于从所述多个数据处理请求中携带的多个标识信息中提取第一标识信息,所述第一标识信息为所述多个线程中任意一个线程对应的标识信息;
触发单元,用于在预置时间间隔后触发与所述第一标识信息对应的线程对所述数据进行处理。
7.根据权利要求6所述的装置,其特征在于,所述触发单元包括:
提取模块,用于在预置时间间隔后,从所述等待队列中提取与所述第一标识信息对应的线程;
触发模块,用于触发所述与所述第一标识信息对应的线程对所述数据进行处理。
8.根据权利要求7所述的装置,其特征在于,所述触发单元还包括:
创建模块,用于创建与所述数据对应的数据记录表,所述数据记录表中包含有与所述数据对应的状态标识、所述数据上一次处理的时间信息;
检测模块,用于检测所述与所述数据对应的状态标识是否为可处理状态标识。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求5中任意一项所述的并发操作的控制方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求5中任意一项所述的并发操作的控制方法。
CN201710895710.9A 2017-09-27 2017-09-27 一种并发操作的控制方法及装置 Active CN109558249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710895710.9A CN109558249B (zh) 2017-09-27 2017-09-27 一种并发操作的控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710895710.9A CN109558249B (zh) 2017-09-27 2017-09-27 一种并发操作的控制方法及装置

Publications (2)

Publication Number Publication Date
CN109558249A true CN109558249A (zh) 2019-04-02
CN109558249B CN109558249B (zh) 2022-11-04

Family

ID=65864026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710895710.9A Active CN109558249B (zh) 2017-09-27 2017-09-27 一种并发操作的控制方法及装置

Country Status (1)

Country Link
CN (1) CN109558249B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459638A (zh) * 2020-04-01 2020-07-28 广东三维家信息科技有限公司 主线程等待时间确定方法及装置
CN111475308A (zh) * 2020-04-09 2020-07-31 北京北方华创微电子装备有限公司 半导体设备多线程并发调度重算方法、系统及控制系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100100889A1 (en) * 2008-10-16 2010-04-22 International Business Machines Corporation Accelerating mutual exclusion locking function and condition signaling while maintaining priority wait queues
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
CN102446117A (zh) * 2011-09-06 2012-05-09 北京数码大方科技有限公司 多线程数据的保存方法及装置
CN102906706A (zh) * 2010-05-24 2013-01-30 索尼电脑娱乐公司 信息处理装置及信息处理方法
CN103092703A (zh) * 2011-10-31 2013-05-08 国际商业机器公司 Java资源访问的同步方法和装置
CN107038021A (zh) * 2017-04-05 2017-08-11 华为技术有限公司 用于访问随机存取存储器ram的方法、装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100100889A1 (en) * 2008-10-16 2010-04-22 International Business Machines Corporation Accelerating mutual exclusion locking function and condition signaling while maintaining priority wait queues
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
CN102906706A (zh) * 2010-05-24 2013-01-30 索尼电脑娱乐公司 信息处理装置及信息处理方法
CN102446117A (zh) * 2011-09-06 2012-05-09 北京数码大方科技有限公司 多线程数据的保存方法及装置
CN103092703A (zh) * 2011-10-31 2013-05-08 国际商业机器公司 Java资源访问的同步方法和装置
CN107038021A (zh) * 2017-04-05 2017-08-11 华为技术有限公司 用于访问随机存取存储器ram的方法、装置和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459638A (zh) * 2020-04-01 2020-07-28 广东三维家信息科技有限公司 主线程等待时间确定方法及装置
CN111459638B (zh) * 2020-04-01 2023-07-07 广东三维家信息科技有限公司 主线程等待时间确定方法及装置
CN111475308A (zh) * 2020-04-09 2020-07-31 北京北方华创微电子装备有限公司 半导体设备多线程并发调度重算方法、系统及控制系统
CN111475308B (zh) * 2020-04-09 2023-09-08 北京北方华创微电子装备有限公司 半导体设备多线程并发调度重算方法、系统及控制系统

Also Published As

Publication number Publication date
CN109558249B (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
US9223610B2 (en) Management of virtual machine snapshots
JP2017534105A5 (zh)
US20160335135A1 (en) Method for minimizing lock contention among threads when tasks are distributed in multithreaded system and appratus using the same
CN109144697B (zh) 一种任务调度方法、装置、电子设备及存储介质
US10564889B2 (en) Method and apparatus for processing data based on physical host
KR102214981B1 (ko) 요청 처리 방법 및 장치
US20190097963A1 (en) Storing messages of a message queue
CN108241795A (zh) 一种用户身份识别方法及装置
CN109558249A (zh) 一种并发操作的控制方法及装置
KR101508429B1 (ko) 사용자 단말에 에이전트 서비스를 제공하는 방법 및 시스템
CN108399046B (zh) 文件操作请求处理方法和装置
US10560356B2 (en) Assuring data correctness in non-stable network environment
CN110413210B (zh) 用于处理数据的方法、设备和计算机程序产品
CN113407973A (zh) 软件功能权限管理方法、系统、服务器及存储介质
CN109495435A (zh) 服务器的防火墙更新方法和装置
CN106649064B (zh) 一种应用操作监测方法及装置
US10079777B2 (en) Apparatus, systems, and methods of allocating heterogeneous resources
CN110825391A (zh) 服务管理方法、装置、电子设备及存储介质
US9628401B2 (en) Software product instance placement
CN109561126A (zh) 一种数据同步方法和装置、存储介质、处理器
CN109582396A (zh) 一种任务状态处理方法、装置、系统及存储介质
US20210357302A1 (en) Dynamically mapping software infrastructure utilization
CN110543486B (zh) 数据变更方法、装置及服务器
CN114356516A (zh) 资源调度方法及相关装置、设备和存储介质
CN103154894A (zh) 用于管理微处理器中的或微处理器组件中的任务的方法

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
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Applicant before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant