CN105677487A - 一种控制资源占用的方法及装置 - Google Patents

一种控制资源占用的方法及装置 Download PDF

Info

Publication number
CN105677487A
CN105677487A CN201610017583.8A CN201610017583A CN105677487A CN 105677487 A CN105677487 A CN 105677487A CN 201610017583 A CN201610017583 A CN 201610017583A CN 105677487 A CN105677487 A CN 105677487A
Authority
CN
China
Prior art keywords
queue
thread
stored
hang
described queue
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
CN201610017583.8A
Other languages
English (en)
Other versions
CN105677487B (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.)
Inspur General Software Co Ltd
Original Assignee
Inspur General Software 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 Inspur General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN201610017583.8A priority Critical patent/CN105677487B/zh
Publication of CN105677487A publication Critical patent/CN105677487A/zh
Application granted granted Critical
Publication of CN105677487B publication Critical patent/CN105677487B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

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)

Abstract

本发明提供了一种控制资源占用的方法及装置,该方法,包括:预先根据队列的存入线程的存入数据的速度和读取线程的读取数据的速度,确定所述队列的大小,其中,所述队列的存入线程用于向所述队列存入数据,所述队列的读取线程用于从所述队列中读取数据;根据确定出的所述队列的大小,创建所述队列;预先设置相关线程的挂起条件,所述相关线程包括:所述存入线程、所述读取线程;还包括:实时检测所述队列中的当前数据量;获取所述队列中的当前数据量;根据获取的所述队列中的当前数据量,判断所述相关线程是否满足所述挂起条件,如果是,则挂起所述相关线程。本发明提供了一种控制资源占用的方法及装置,能够提高资源利用率。

Description

一种控制资源占用的方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种控制资源占用的方法及装置。
背景技术
伴随着科学技术的发展,各行各业信息化的程度越来越高,每天产生了大量的数据,对数据的处理也就越来越重要,数据慢慢驱动了整个的业务流程。为了充分利用这些数据,需要对这些数据进行数据库间相互传输、数据转换等处理。
在处理数据的过程中,随着数据量的增加,处理数据的设备的负荷也越来越重。在处理大量数据时,会占用大量的资源。
现有技术中,还没有一种控制资源占用的方法,使得现有的数据处理方法的资源利用率较低。
发明内容
本发明实施例提供了一种控制资源占用的方法及装置,能够提高资源利用率。
一方面,本发明提供了一种控制资源占用的方法,包括:
预先根据队列的存入线程的存入数据的速度和读取线程的读取数据的速度,确定所述队列的大小,其中,所述队列的存入线程用于向所述队列存入数据,所述队列的读取线程用于从所述队列中读取数据;
根据确定出的所述队列的大小,创建所述队列;
预先设置相关线程的挂起条件,所述相关线程包括:所述存入线程、所述读取线程;
还包括:
S1:实时检测所述队列中的当前数据量;
S2:获取所述队列中的当前数据量;
S3:根据获取的所述队列中的当前数据量,判断所述相关线程是否满足所述挂起条件,如果是,则挂起所述相关线程。
进一步地,所述读取线程的挂起条件,包括:所述队列中的当前数据量小于等于所述队列的大小的第一预设比例;
所述S3,包括:
判断所述队列中的当前数据量是否小于等于所述队列的大小的第一预设比例,如果是,则挂起所述队列的所述读取线程。
进一步地,在判断出所述队列中的当前数据量小于等于所述队列的大小的第一预设比例时,在执行所述挂起所述队列的所述读取线程之前,还包括:
判断所述队列的所述存入线程是否停止向所述队列存入数据,如果是,则执行步骤S2,否则,执行所述挂起所述队列的所述存入线程。
进一步地,该方法还包括:
预先设置所述相关线程的挂起时间阈值;
还包括:判断挂起的所述相关线程的挂起时间长度是否大于等于所述挂起时间阈值,如果是,则唤醒所述相关线程。
进一步地,所述存入线程的挂起条件,包括:所述队列中的当前数据量大于等于所述队列的大小的第二预设比例;
所述S3,包括:判断所述队列中的当前数据量是否大于等于所述队列的大小的第二预设比例,如果是,则挂起所述队列的所述存入线程。
进一步地,该方法还包括:判断所述队列的所述读取线程是否停止从所述队列中读取数据,如果是,则挂起所述队列的所述存入线程。
进一步地,所述S3,还包括:当判断出所述相关线程不满足所述挂起条件时,则判断所述相关线程是否挂起,如果是,则唤醒挂起的所述相关线程。
另一方面,本发明提供了一种控制资源占用的装置,包括:
确定单元,用于根据队列的存入线程的存入数据的速度和读取线程的读取数据的速度,确定所述队列的大小,其中,所述队列的存入线程用于向所述队列存入数据,所述队列的读取线程用于从所述队列中读取数据;
创建单元,用于根据确定出的所述队列的大小,创建所述队列;
第一设置单元,用于设置相关线程的挂起条件,所述相关线程包括:所述存入线程、所述读取线程;
还包括:
检测单元,用于实时检测所述队列中的当前数据量;
获取单元,用于获取所述队列中的当前数据量;
挂起单元,用于根据所述获取单元获取的所述队列中的当前数据量,判断所述相关线程是否满足所述挂起条件,如果是,则挂起所述相关线程。
进一步地,所述读取线程的挂起条件,包括:所述队列中的当前数据量小于等于所述队列的大小的第一预设比例;
所述挂起单元,用于判断所述队列中的当前数据量是否小于等于所述队列的大小的第一预设比例,如果是,则挂起所述队列的所述读取线程。
进一步地,所述挂起单元,在判断出所述队列中的当前数据量小于等于所述队列的大小的第一预设比例时,在执行所述挂起所述队列的所述读取线程之前,还用于:
判断所述队列的所述存入线程是否停止向所述队列存入数据,如果是,则触发所述获取单元,否则,执行所述挂起所述队列的所述存入线程。
进一步地,该装置还包括:
第二设置单元,用于设置所述相关线程的挂起时间阈值;
第一唤醒单元,用于判断挂起的所述相关线程的挂起时间长度是否大于等于所述挂起时间阈值,如果是,则唤醒所述相关线程。
进一步地,所述存入线程的挂起条件,包括:所述队列中的当前数据量大于等于所述队列的大小的第二预设比例;
所述挂起单元,用于判断所述队列中的当前数据量是否大于等于所述队列的大小的第二预设比例,如果是,则挂起所述队列的所述存入线程。
进一步地,该装置还包括:
第二唤醒单元,用于判断所述队列的所述读取线程是否停止从所述队列中读取数据,如果是,则挂起所述队列的所述存入线程。
进一步地,所述挂起单元,还用于当判断出所述相关线程不满足所述挂起条件时,则判断所述相关线程是否挂起,如果是,则唤醒挂起的所述相关线程。
本发明实施例提供的一种控制资源占用的方法及装置,根据队列的存入数据的速度和读取数据的速度,确定队列的大小,并创建队列,这样可以合理设置队列的大小,避免队列中存储大量的数据,减少了内存的占用,提高了内存的利用率,实时监测队列中的当前数据量,在队列中的当前数据量满足挂起条件时,将相关线程挂起,减少了CPU的占用,提高了CPU的利用率,总之,本发明提供的方法,提高了资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种控制资源占用的方法的流程图;
图2是本发明一实施例提供的另一种控制资源占用的方法的流程图;
图3是本发明一实施例提供的一种控制资源占用的装置的示意图;
图4是本发明一实施例提供的另一种控制资源占用的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种控制资源占用的方法,该方法可以包括以下步骤:
步骤101:预先根据队列的存入线程的存入数据的速度和读取线程的读取数据的速度,确定所述队列的大小,其中,所述队列的存入线程用于向所述队列存入数据,所述队列的读取线程用于从所述队列中读取数据;
步骤102:根据确定出的所述队列的大小,创建所述队列;
步骤103:预先设置相关线程的挂起条件,所述相关线程包括:所述存入线程、所述读取线程;
步骤104:实时检测所述队列中的当前数据量;
步骤105:获取所述队列中的当前数据量;
步骤106:根据获取的所述队列中的当前数据量,判断所述相关线程是否满足所述挂起条件,如果是,则挂起所述相关线程。
本发明实施例提供的一种控制资源占用的方法,根据队列的存入数据的速度和读取数据的速度,确定队列的大小,并创建队列,这样可以合理设置队列的大小,避免队列中存储大量的数据,减少了内存的占用,提高了内存的利用率,实时监测队列中的当前数据量,在队列中的当前数据量满足挂起条件时,将相关线程挂起,减少了CPU的占用,提高了CPU的利用率,总之,本发明提供的方法,提高了资源利用率。
在一种可能的实现方式中,所述读取线程的挂起条件,包括:所述队列中的当前数据量小于等于所述队列的大小的第一预设比例;
所述步骤106,包括:判断所述队列中的当前数据量是否小于等于所述队列的大小的第一预设比例,如果是,则挂起所述队列的所述读取线程。
在该实现方式中,通过队列中的当前数据量占队列的大小的比例来确定是否挂起队列的读取线程。举例来说,第一预设比例为10%,判断所述队列中的当前数据量是否小于等于所述队列的大小的10%,如果是,则挂起所述队列的所述读取线程。
在一种可能的实现方式中,在判断出所述队列中的当前数据量小于等于所述队列的大小的第一预设比例时,在执行所述挂起所述队列的所述读取线程之前,还包括:
判断所述队列的所述存入线程是否停止向所述队列存入数据,如果是,则执行所述判断所述队列中的当前数据量是否小于等于所述队列的大小的第一预设比例,否则,执行所述挂起所述队列的所述存入线程。
在该实现方式中,当存入线程停止向队列存入数据时,为了能够继续对队列中剩余的数据进行处理,即使当前数据量小于等于队列的大小的第一预设比例,读取线程也要继续读取队列中的数据。
在一种可能的实现方式中,还包括:
预先设置所述相关线程的挂起时间阈值;
还包括:判断挂起的所述相关线程的挂起时间长度是否大于等于所述挂起时间阈值,如果是,则唤醒所述相关线程。
举例来说,相关线程的挂起时间阈值为10毫秒,当相关线程的挂起时间长度大于等于10毫秒时,唤醒相关线程,使得相关线程继续进行数据处理。
在一种可能的实现方式中,所述步骤106,包括:判断所述队列中的当前数据量是否大于等于所述队列的大小的第二预设比例,如果是,则挂起所述队列的所述存入线程。
在该实现方式中,通过队列中的当前数据量占队列的大小的比例来确定是否挂起队列的存入线程。在当前数据量大于等于队列的大小的第二预设比例时,则认为队列中有过多的数据没有被处理,占用大量内存,因此,需要停止存入数据,挂起存入线程,节省了内存,减少了CPU的占用。
举例来说,第二预设比例为90%,判断所述队列中的当前数据量是否大于等于所述队列的大小的90%,如果是,则挂起所述队列的所述存入线程。
在一种可能的实现方式中,还包括:判断所述队列的所述读取线程是否停止从所述队列中读取数据,如果是,则挂起所述队列的所述存入线程。
当读取线程停止读取数据时,如果存入线程还向队列中存入数据,会在队列中积累大量数据,消耗内存,并且存入线程也会占用CPU。通过该实现方式,在判断出读取线程停止读取数据后,挂起存入线程,节省了内存资源和CPU资源。
在一种可能的实现方式中,所述步骤106,还包括:当判断出所述相关线程不满足所述挂起条件时,则判断所述相关线程是否挂起,如果是,则唤醒挂起的所述相关线程。
在该实现方式中,当相关线程挂起时,且相关线程已不满足挂起条件的情况下,唤醒挂起的相关线程,继续处理数据。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
在本发明实施例中,基于一种数据集成流程来详细本发明实施例提供的一种控制资源占用的方法。在该数据集成流程中有三个步骤和两个队列,三个步骤分别是数据抽取、数据转换、数据更新,两个队列分别是队列A和队列B,该数据集成流程是要实现从数据库中获取数据经过复杂的转换,输入到txt中。
该数据集成流程具体如下:数据抽取步骤从数据库中获取数据,存入到队列A中,数据转换步骤从队列A中读取数据,并对读取的数据进行转换,然后,存入到队列B中,数据更新步骤从队列B中读取数据,输出读取的数据。
从上述描述可见,对于队列A来说,数据抽取步骤的数据抽取线程为存入线程,数据转换步骤的数据转换线程为读取线程;对于队列B来说,数据更新步骤的数据转换线程为存入线程,数据更新步骤的数据更新线程为读取线程。
而对于每个队列来说,控制资源占用的方法是相同的,下面针对队列A来详细说明控制资源占用的方法。
如图2所示,本发明实施例提供了一种控制资源占用的方法,该方法可以包括以下步骤:
步骤201:预先根据数据抽取线程的存入数据的速度和数据转换线程的读取数据的速度,确定队列A的大小。
具体地,在确定队列的大小时,当存入线程的存入数据的速度较快,读取线程的读取数据的速度较慢时,队列中会堆积大量的数据,占用大量的内存,因此,在这种情况下,需要减小队列的大小,减少内存的占用。当存入线程和读取线程有多个时,还要考虑线程的数量来确定队列的大小。内存的大小的具体数值可以通过样本实验的方式来确定。
由于数据转换的速度较慢,数据转换线程的读取数据的速度较慢,数据抽取线程的存入数据的速度较快,因此,需要较小队列的大小,可以设置为10000。
步骤202:预先设置数据转换线程的挂起条件和数据抽取线程的挂起条件,数据转换线程的挂起条件,包括:队列A中的当前数据量小于等于队列A的大小的第一预设比例,数据抽取线程的挂起条件,包括:队列A中的当前数据量大于等于队列A的大小的第二预设比例。
具体地,第一预设比例可以设置为10%,第二预设比例可以设置为90%。
步骤203:根据确定出的队列A的大小,创建队列A。
步骤204:运行数据抽取线程和数据转换线程。
在该方法中,当相关线程挂起时,相关线程停止运行,如果相关线程没有挂起,则相关线程持续正常运行。
步骤205:实时检测队列A中的当前数据量。
步骤206:获取队列A中的当前数据量。
在之后分别进行对存入线程和读取线程的操作:
步骤207a:判断队列A中的当前数据量是否小于等于队列A的大小的第一预设比例,如果是,则执行步骤208a,否则,执行步骤210a。
步骤208a:判断队列A的数据抽取线程是否停止向队列A存入数据,如果是,则返回步骤206,否则,执行步骤209a。
步骤209a:挂起队列A的数据转换线程,返回步骤206。
步骤210a:判断数据转换线程是否挂起,如果是,则执行步骤211a,否则,返回步骤206。
步骤211a:唤醒挂起的数据转换线程,返回步骤206。
步骤207b:判断队列A中的当前数据量是否大于等于队列A的大小的第二预设比例,如果是,则执行步骤209b,否则,执行步骤208b;
步骤208b:判断队列A的数据转换线程是否停止从队列A中读取数据,如果是,则执行步骤209b,否则,执行步骤210b。
步骤209b:挂起队列A的数据抽取线程,返回步骤206。
步骤210b:判断数据抽取线程是否挂起,如果是,则执行步骤211b,否则,返回步骤206。
步骤211b:唤醒挂起的数据抽取线程,返回步骤206。
本发明实施例中通过设置每个队列的大小,控制相关线程的挂起与唤醒,能够灵活的控制系统资源的占用情况,能够提高资源的利用率。
如图3、图4所示,本发明实施例提供了一种控制资源占用的装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种控制资源占用的装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种控制资源占用的装置,包括:
确定单元401,用于根据队列的存入线程的存入数据的速度和读取线程的读取数据的速度,确定所述队列的大小,其中,所述队列的存入线程用于向所述队列存入数据,所述队列的读取线程用于从所述队列中读取数据;
创建单元402,用于根据确定出的所述队列的大小,创建所述队列;
第一设置单元403,用于设置相关线程的挂起条件,所述相关线程包括:所述存入线程、所述读取线程;
检测单元404,用于实时检测所述队列中的当前数据量;
获取单元405,用于获取所述队列中的当前数据量;
挂起单元406,用于根据所述获取单元获取的所述队列中的当前数据量,判断所述相关线程是否满足所述挂起条件,如果是,则挂起所述相关线程。
在一种可能的实现方式中,所述读取线程的挂起条件,包括:所述队列中的当前数据量小于等于所述队列的大小的第一预设比例;
所述挂起单元406,用于判断所述队列中的当前数据量是否小于等于所述队列的大小的第一预设比例,如果是,则挂起所述队列的所述读取线程。
在一种可能的实现方式中,所述挂起单元406,在判断出所述队列中的当前数据量小于等于所述队列的大小的第一预设比例时,在执行所述挂起所述队列的所述读取线程之前,还用于:
判断所述队列的所述存入线程是否停止向所述队列存入数据,如果是,则触发所述获取单元,否则,执行所述挂起所述队列的所述存入线程。
在一种可能的实现方式中,该装置还包括:
第二设置单元,用于设置所述相关线程的挂起时间阈值;
第一唤醒单元,用于判断挂起的所述相关线程的挂起时间长度是否大于等于所述挂起时间阈值,如果是,则唤醒所述相关线程。
在一种可能的实现方式中,所述存入线程的挂起条件,包括:所述队列中的当前数据量大于等于所述队列的大小的第二预设比例;
所述挂起单元406,用于判断所述队列中的当前数据量是否大于等于所述队列的大小的第二预设比例,如果是,则挂起所述队列的所述存入线程。
在一种可能的实现方式中,该装置还包括:
第二唤醒单元,用于判断所述队列的所述读取线程是否停止从所述队列中读取数据,如果是,则挂起所述队列的所述存入线程。
在一种可能的实现方式中,所述挂起单元406,还用于当判断出所述相关线程不满足所述挂起条件时,则判断所述相关线程是否挂起,如果是,则唤醒挂起的所述相关线程。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供的一种控制资源占用的方法及装置,具有如下有益效果:
1、本发明实施例提供的一种控制资源占用的方法及装置,根据队列的存入数据的速度和读取数据的速度,确定队列的大小,并创建队列,这样可以合理设置队列的大小,避免队列中存储大量的数据,减少了内存的占用,提高了内存的利用率,实时监测队列中的当前数据量,在队列中的当前数据量满足挂起条件时,将相关线程挂起,减少了CPU的占用,提高了CPU的利用率,总之,本发明提供的方法,提高了资源利用率。
2、本发明实施例提供的一种控制资源占用的方法及装置,通过队列中的当前数据量占队列的大小的比例来确定是否挂起队列的存入线程。在当前数据量大于等于队列的大小的第二预设比例时,则认为队列中有过多的数据没有被处理,占用大量内存,因此,需要停止存入数据,挂起存入线程,节省了内存,减少了CPU的占用。
3、本发明实施例提供的一种控制资源占用的方法及装置,当读取线程停止读取数据时,如果存入线程还向队列中存入数据,会在队列中积累大量数据,消耗内存,并且存入线程也会占用CPU。通过该实现方式,在判断出读取线程停止读取数据后,挂起存入线程,节省了内存资源和CPU资源。
4、本发明实施例提供的一种控制资源占用的方法及装置,通过设置每个队列的大小,控制相关线程的挂起与唤醒,能够灵活的控制系统资源的占用情况,能够提高资源的利用率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃〃〃〃〃〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种控制资源占用的方法,其特征在于,包括:
预先根据队列的存入线程的存入数据的速度和读取线程的读取数据的速度,确定所述队列的大小,其中,所述队列的存入线程用于向所述队列存入数据,所述队列的读取线程用于从所述队列中读取数据;
根据确定出的所述队列的大小,创建所述队列;
预先设置相关线程的挂起条件,所述相关线程包括:所述存入线程、所述读取线程;
还包括:
S1:实时检测所述队列中的当前数据量;
S2:获取所述队列中的当前数据量;
S3:根据获取的所述队列中的当前数据量,判断所述相关线程是否满足所述挂起条件,如果是,则挂起所述相关线程。
2.根据权利要求1所述的方法,其特征在于,所述读取线程的挂起条件,包括:所述队列中的当前数据量小于等于所述队列的大小的第一预设比例;
所述S3,包括:
判断所述队列中的当前数据量是否小于等于所述队列的大小的第一预设比例,如果是,则挂起所述队列的所述读取线程。
3.根据权利要求2所述的方法,其特征在于,
在判断出所述队列中的当前数据量小于等于所述队列的大小的第一预设比例时,在执行所述挂起所述队列的所述读取线程之前,还包括:
判断所述队列的所述存入线程是否停止向所述队列存入数据,如果是,则执行步骤S2,否则,执行所述挂起所述队列的所述存入线程。
4.根据权利要求1所述的方法,其特征在于,还包括:
预先设置所述相关线程的挂起时间阈值;
还包括:判断挂起的所述相关线程的挂起时间长度是否大于等于所述挂起时间阈值,如果是,则唤醒所述相关线程。
5.根据权利要求1所述的方法,其特征在于,
所述存入线程的挂起条件,包括:所述队列中的当前数据量大于等于所述队列的大小的第二预设比例;
所述S3,包括:判断所述队列中的当前数据量是否大于等于所述队列的大小的第二预设比例,如果是,则挂起所述队列的所述存入线程;
和/或,
还包括:判断所述队列的所述读取线程是否停止从所述队列中读取数据,如果是,则挂起所述队列的所述存入线程;
和/或,
所述S3,还包括:当判断出所述相关线程不满足所述挂起条件时,则判断所述相关线程是否挂起,如果是,则唤醒挂起的所述相关线程。
6.一种控制资源占用的装置,其特征在于,包括:
确定单元,用于根据队列的存入线程的存入数据的速度和读取线程的读取数据的速度,确定所述队列的大小,其中,所述队列的存入线程用于向所述队列存入数据,所述队列的读取线程用于从所述队列中读取数据;
创建单元,用于根据确定出的所述队列的大小,创建所述队列;
第一设置单元,用于设置相关线程的挂起条件,所述相关线程包括:所述存入线程、所述读取线程;
还包括:
检测单元,用于实时检测所述队列中的当前数据量;
获取单元,用于获取所述队列中的当前数据量;
挂起单元,用于根据所述获取单元获取的所述队列中的当前数据量,判断所述相关线程是否满足所述挂起条件,如果是,则挂起所述相关线程。
7.根据权利要求6所述的装置,其特征在于,
所述读取线程的挂起条件,包括:所述队列中的当前数据量小于等于所述队列的大小的第一预设比例;
所述挂起单元,用于判断所述队列中的当前数据量是否小于等于所述队列的大小的第一预设比例,如果是,则挂起所述队列的所述读取线程。
8.根据权利要求7所述的装置,其特征在于,所述挂起单元,在判断出所述队列中的当前数据量小于等于所述队列的大小的第一预设比例时,在执行所述挂起所述队列的所述读取线程之前,还用于:
判断所述队列的所述存入线程是否停止向所述队列存入数据,如果是,则触发所述获取单元,否则,执行所述挂起所述队列的所述存入线程。
9.根据权利要求6所述的装置,其特征在于,还包括:
第二设置单元,用于设置所述相关线程的挂起时间阈值;
第一唤醒单元,用于判断挂起的所述相关线程的挂起时间长度是否大于等于所述挂起时间阈值,如果是,则唤醒所述相关线程。
10.根据权利要求6所述的装置,其特征在于,
所述存入线程的挂起条件,包括:所述队列中的当前数据量大于等于所述队列的大小的第二预设比例;
所述挂起单元,用于判断所述队列中的当前数据量是否大于等于所述队列的大小的第二预设比例,如果是,则挂起所述队列的所述存入线程;
和/或,
还包括:
第二唤醒单元,用于判断所述队列的所述读取线程是否停止从所述队列中读取数据,如果是,则挂起所述队列的所述存入线程;
和/或,
所述挂起单元,还用于当判断出所述相关线程不满足所述挂起条件时,则判断所述相关线程是否挂起,如果是,则唤醒挂起的所述相关线程。
CN201610017583.8A 2016-01-12 2016-01-12 一种控制资源占用的方法及装置 Active CN105677487B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610017583.8A CN105677487B (zh) 2016-01-12 2016-01-12 一种控制资源占用的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610017583.8A CN105677487B (zh) 2016-01-12 2016-01-12 一种控制资源占用的方法及装置

Publications (2)

Publication Number Publication Date
CN105677487A true CN105677487A (zh) 2016-06-15
CN105677487B CN105677487B (zh) 2019-02-15

Family

ID=56300078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610017583.8A Active CN105677487B (zh) 2016-01-12 2016-01-12 一种控制资源占用的方法及装置

Country Status (1)

Country Link
CN (1) CN105677487B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427686A (zh) * 2020-03-23 2020-07-17 贵阳块数据城市建设有限公司 一种处理器多线程并发方法
CN108628775B (zh) * 2017-03-22 2021-02-12 华为技术有限公司 一种资源管理的方法和装置
CN113568886A (zh) * 2021-07-21 2021-10-29 上海淇玥信息技术有限公司 一种数据迁移方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126186A1 (en) * 2001-12-31 2003-07-03 Dion Rodgers Method and apparatus for suspending execution of a thread until a specified memory access occurs
CN102880447A (zh) * 2003-08-28 2013-01-16 美普思科技有限公司 一种在处理器中挂起和释放执行过程中计算线程的整体机制
CN103475899A (zh) * 2013-07-30 2013-12-25 深圳市融创天下科技股份有限公司 数据分发方法和装置
CN104461730A (zh) * 2013-09-22 2015-03-25 华为技术有限公司 一种虚拟资源分配方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126186A1 (en) * 2001-12-31 2003-07-03 Dion Rodgers Method and apparatus for suspending execution of a thread until a specified memory access occurs
CN102880447A (zh) * 2003-08-28 2013-01-16 美普思科技有限公司 一种在处理器中挂起和释放执行过程中计算线程的整体机制
CN103475899A (zh) * 2013-07-30 2013-12-25 深圳市融创天下科技股份有限公司 数据分发方法和装置
CN104461730A (zh) * 2013-09-22 2015-03-25 华为技术有限公司 一种虚拟资源分配方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628775B (zh) * 2017-03-22 2021-02-12 华为技术有限公司 一种资源管理的方法和装置
CN111427686A (zh) * 2020-03-23 2020-07-17 贵阳块数据城市建设有限公司 一种处理器多线程并发方法
CN111427686B (zh) * 2020-03-23 2023-03-24 贵阳块数据城市建设有限公司 一种处理器多线程并发方法
CN113568886A (zh) * 2021-07-21 2021-10-29 上海淇玥信息技术有限公司 一种数据迁移方法、装置和电子设备

Also Published As

Publication number Publication date
CN105677487B (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
CN104335175B (zh) 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统
EP2488929B1 (en) Memory object relocation for power savings
US8516462B2 (en) Method and apparatus for managing a stack
US11144330B2 (en) Algorithm program loading method and related apparatus
CN102779075A (zh) 一种在多处理器核系统中进行调度的方法、装置及系统
US20140351820A1 (en) Apparatus and method for managing stream processing tasks
CN106713396B (zh) 服务器调度方法和系统
CN105718028B (zh) 一种基于识别耗电应用的省电方法及装置
CN110389842B (zh) 一种动态资源分配方法、装置、存储介质及设备
WO2017031837A1 (zh) 磁盘容量的预测方法、装置及设备
CN111090502B (zh) 一种流数据任务调度方法和装置
US10467054B2 (en) Resource management method and system, and computer storage medium
CN103218263A (zh) MapReduce参数的动态确定方法及装置
CN105677487A (zh) 一种控制资源占用的方法及装置
KR101276340B1 (ko) 병렬 처리 시스템 및 그 방법
CN107610039A (zh) 图像处理方法及图像处理装置
CN109992366A (zh) 任务调度方法及调度装置
CN110737717B (zh) 一种数据库迁移方法及装置
CN113010289A (zh) 一种任务调度方法、装置和系统
CN104251913B (zh) 旋转机械监测系统启停机智能判断方法
CN108829345A (zh) 日志文件的数据处理方法和终端设备
CN105992213A (zh) 智能路由器、云端服务器及智能路由器启停系统
CN112434092A (zh) 一种数据处理方法、装置、电子设备和可读存储介质
CN101901192B (zh) 一种片上和片外数据对象静态分配方法
CN107066318A (zh) 一种适用于流计算的数据调度方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant