CN106598706B - 一种提高服务器的稳定性的方法、装置及服务器 - Google Patents

一种提高服务器的稳定性的方法、装置及服务器 Download PDF

Info

Publication number
CN106598706B
CN106598706B CN201510669430.7A CN201510669430A CN106598706B CN 106598706 B CN106598706 B CN 106598706B CN 201510669430 A CN201510669430 A CN 201510669430A CN 106598706 B CN106598706 B CN 106598706B
Authority
CN
China
Prior art keywords
thread
processing result
access request
processing
server
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.)
Active
Application number
CN201510669430.7A
Other languages
English (en)
Other versions
CN106598706A (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.)
58tongcheng Information Technology Co ltd
Original Assignee
58tongcheng Information 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 58tongcheng Information Technology Co ltd filed Critical 58tongcheng Information Technology Co ltd
Priority to CN201510669430.7A priority Critical patent/CN106598706B/zh
Publication of CN106598706A publication Critical patent/CN106598706A/zh
Application granted granted Critical
Publication of CN106598706B publication Critical patent/CN106598706B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提出了一种提高服务器的稳定性的方法、装置及服务器,设用于接收客户端访问请求的线程组中包含第一线程,用于处理客户端访问请求的线程组中包含第二线程,该方法包括:第二线程处理完任一访问请求后,将处理结果存储到指定的存储空间;第一线程从所述指定的存储空间获取所述处理结果并进行返回。本发明通过设置指定的存储空间,让用于接收客户端访问请求的线程以及用于处理客户端访问请求的线程均可以对该指定的存储空间进行读写,使得单一线程对处理结果进行接收和返回成为可能,避免跨线程处理,减少了服务器的堵塞。

Description

一种提高服务器的稳定性的方法、装置及服务器
技术领域
本发明涉及服务器技术领域,尤其涉及一种提高服务器的稳定性的方法、装置及服务器。
背景技术
随着计算机技术的发展,硬件的性能得到了巨大的提高,使得多线程的应用越来越广泛。使用多线程可以使得多个执行路径并行执行,降低了程序开发的复杂度,提高了软件的性能,多线程的软件程序可以充分利用处理器资源,获得更好的性能。
服务器中采用多线程的软件程序实时接收大量客户端发送的请求,并及时响应返回数据。目前服务器主要采用异步多线程的方式处理,比如:A线程将访问请求发给服务器处理后,不再跟进后续的流程,而由B线程返回对应的处理结果,这种情况下,容易因为线程之间的资源占用冲突,导致服务器端程序崩溃。
发明内容
本发明要解决的技术问题是,提供一种提高服务器的稳定性的方法、装置及服务器,克服现有技术中容易发生线程之间资源占用冲突而导致服务器所提供的服务不稳定的缺陷。
本发明采用的技术方案是,所述提高服务器的稳定性的方法,设用于接收客户端访问请求的线程组中包含第一线程,用于处理客户端访问请求的线程组中包含第二线程,该方法包括:
第二线程处理完任一访问请求后,将处理结果存储到指定的存储空间;
第一线程从所述指定的存储空间获取所述处理结果并进行返回。
进一步的,第二线程处理完任一访问请求后,将处理结果存储到指定的存储空间,包括:
在内存空间中为各第一线程建立存储队列;
将任一访问请求分配给第二线程处理的同时,将接收所述访问请求的第一线程的标识告知第二线程,供第二线程处理完所述访问请求后,基于所述标识将处理结果存入对应的第一线程的存储队列中。
进一步的,第一线程从所述指定的存储空间获取所述处理结果并进行返回,包括:
为所述第一线程设置周期性的超时事件,以使第一线程在所述超时事件到来时从存储队列中读取所述处理结果并进行返回。
进一步的,所述超时事件的周期为5~10毫秒。
进一步的,所述方法,还包括:
在返回所述处理结果之后,由所述第一线程将所述指定的存储空间中的所述处理结果清除。
本发明还提供一种提高服务器的稳定性的装置,设用于接收客户端访问请求的线程组中包含第一线程,用于处理客户端访问请求的线程组中包含第二线程,该装置包括:
第一调用模块,用于调用第二线程执行以下操作:处理完任一访问请求后,将处理结果存储到指定的存储空间;
第二调用模块,用于调用第一线程从所述指定的存储空间获取所述处理结果并进行返回。
进一步的,所述第一调用模块,包括:
建立模块,用于在内存空间中为各第一线程建立存储队列;
分配告知模块,用于将任一访问请求分配给第二线程处理的同时,将接收所述访问请求的第一线程的标识告知第二线程,供第二线程处理完所述访问请求后,基于所述标识将处理结果存入对应的第一线程的存储队列中。
进一步的,所述第二调用模块,还用于:
为所述第一线程设置周期性的超时事件,以使第一线程在所述超时事件到来时从存储队列中读取所述处理结果并进行返回;所述超时事件的周期为5~10毫秒。
进一步的,所述第二调用模块,还用于:
在返回所述处理结果之后,继续调用所述第一线程将所述指定的存储空间中的所述处理结果清除。
本发明还提供一种服务器,包括上述提高服务器的稳定性的装置。
采用上述技术方案,本发明至少具有下列优点:
本发明所述提高服务器的稳定性的方法、装置及服务器,通过设置指定的存储空间,让用于接收客户端访问请求的线程以及用于处理客户端访问请求的线程均可以对该指定的存储空间进行读写,使得单一线程对处理结果进行接收和返回成为可能,避免跨线程处理,减少了服务器的堵塞。
附图说明
图1为本发明第一实施例的提高服务器的稳定性的方法流程图;
图2为本发明第三实施例的提高服务器的稳定性的装置组成结构示意图;
图3为本发明第四实施例的提高服务器的稳定性的装置组成结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种提高服务器的稳定性的方法,设用于接收客户端访问请求的线程组中包含第一线程,用于处理客户端访问请求的线程组中包含第二线程,如图1所示,该方法包括以下具体步骤:
步骤S101,第二线程处理完任一访问请求后,将处理结果存储到指定的存储空间;其中,对于同一个访问请求,可以通过多个第二线程进行多线程处理。
步骤S102,第一线程从所述指定的存储空间获取所述处理结果并进行返回。
优选的,步骤S102包括:
为所述第一线程设置周期性的超时事件,以使第一线程在所述超时事件到来时从存储队列中读取所述处理结果并进行返回。所述超时事件的周期为5~10毫秒。
优选的,所述方法,还包括:
在返回所述处理结果之后,由所述第一线程将所述指定的存储空间中的所述处理结果清除。
本发明第二实施例,一种提高服务器的稳定性的方法,本实施例所述方法与第一实施例大致相同,区别在于,本实施例着重介绍的是当用于接收客户端访问请求的线程组中包含的第一线程为两个以上时的技术方案。
本实施例在步骤S101中,第二线程处理完任一访问请求后,将处理结果存储到指定的存储空间,包括:
在内存空间中为各第一线程建立存储队列;
将任一访问请求分配给第二线程处理的同时,将接收所述访问请求的第一线程的标识告知第二线程,供第二线程处理完所述访问请求后,基于所述标识将处理结果存入对应的第一线程的存储队列中。
本发明第三实施例,与第一实施例对应,本实施例介绍一种提高服务器的稳定性的装置,设用于接收客户端访问请求的线程组中包含第一线程,用于处理客户端访问请求的线程组中包含第二线程,如图2所示,该装置包括以下组成部分:
第一调用模块201,用于调用第二线程执行以下操作:处理完任一访问请求后,将处理结果存储到指定的存储空间;
第二调用模块202,用于调用第一线程从所述指定的存储空间获取所述处理结果并进行返回。
优选的,第二调用模块202,还用于:
为所述第一线程设置周期性的超时事件,以使第一线程在所述超时事件到来时从存储队列中读取所述处理结果并进行返回;所述超时事件的周期为5~10毫秒。
优选的,第二调用模块202,还用于:
在返回所述处理结果之后,继续调用所述第一线程将所述指定的存储空间中的所述处理结果清除。
本发明第四实施例,与第二实施例对应的介绍一种提高服务器的稳定性的装置,本实施例所述装置与第三实施例大致相同,区别在于,本实施例着重介绍的是当用于接收客户端访问请求的线程组中包含的第一线程为两个以上时的技术方案。
在本实施例中,如图3所示,第一调用模块201,包括:
建立模块20,用于在内存空间中为各第一线程建立存储队列;
分配告知模块21,用于将任一访问请求分配给第二线程处理的同时,将接收所述访问请求的第一线程的标识告知第二线程,供第二线程处理完所述访问请求后,基于所述标识将处理结果存入对应的第一线程的存储队列中。
本发明第五实施例,一种服务器,可以作为实体装置来理解,包括上述提高服务器的稳定性的装置。
本发明第六实施例,本实施例是在上述实施例的基础上,介绍一个本发明的应用实例。
本实施例的提高服务器的稳定性的方案的实现如下:
预先建立异步网络框架库之外的内存空间存储队列,用于记录线程的标识以及返回数据,每个第一线程对应一个存储队列,多个第二线程可以对该存储队列进行写操作,而对应的唯一的第一线程可以对该存储队列执行读操作。
第一线程A接到客户端的访问请求,标识该访问请求是第一线程A发过来的;
一个或者多个第二线程B处理完与第一线程A相关的该访问请求,得到处理结果的数据之后,根据标识,找到接收该访问请求的第一线程A对应的存储队列;
第二线程B将处理结果的数据存储到该存储队列里面;
其中第一线程A专用于处理网络事件,如果客户端没有网络事件,则第一线程A处于阻塞状态,无法处理存储队列中数据,不能接受响应。因此,需要预先给第一线程A设定一个超时的事件,当超时事件触发时候,读取存储队列中数据即第二线程B处理后的数据,并由第一线程A返回对应的处理结果数据。其中超时时间很短,如5到10毫秒,不会造成延时。
本实施例通过创建一个与第一线程A对应的存储队列,让第二线程B在处理完访问请求后,基于第一线程A的标识将处理结果数据存储到第一线程A对应的存储队列中,供第一线程A从该队列中读取到处理结果数据后返回,即实现了由第一线程A完成接收访问请求、返回处理结果数据的工作,由第二线程B完成业务逻辑、将处理结果存储到指定的存储空间。
本实施例所要实现的目的是:在已经由第二线程B的情况下,使第一线程A能够返回第二线程B处理的数据,即实现了第一线程A发送的访问请求,在其它线程处理之后,仍能够使第一线程A自身返回对应的处理结果。避免了现有技术中,采用其它线程返回对应结果造成的线程之间资源的占用冲突,可以减少服务器程序崩溃,用于提高服务端的稳定性,持续稳定的提供服务。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。

Claims (7)

1.一种提高服务器的稳定性的方法,其特征在于,设用于接收客户端访问请求的线程组中包含第一线程,用于处理客户端访问请求的线程组中包含第二线程,所述方法包括:
第二线程处理完任一访问请求后,将处理结果存储到指定的存储空间;
第一线程从所述指定的存储空间获取所述处理结果并进行返回;
第二线程处理完任一访问请求后,将处理结果存储到指定的存储空间,包括:
在内存空间中为各第一线程建立存储队列;
将任一访问请求分配给第二线程处理的同时,将接收所述访问请求的第一线程的标识告知第二线程,供第二线程处理完所述访问请求后,基于所述标识将处理结果存入对应的第一线程的存储队列中;
所述第一线程从所述指定的存储空间获取所述处理结果并进行返回,包括:
为所述第一线程设置周期性的超时事件,以使第一线程在所述超时事件到来时从存储队列中读取所述处理结果并进行返回。
2.根据权利要求1所述的提高服务器的稳定性的方法,其特征在于,所述超时事件的周期为5~10毫秒。
3.根据权利要求1~2中任一项所述的提高服务器的稳定性的方法,其特征在于,所述方法,还包括:
在返回所述处理结果之后,由所述第一线程将所述指定的存储空间中的所述处理结果清除。
4.一种提高服务器的稳定性的装置,其特征在于,设用于接收客户端访问请求的线程组中包含第一线程,用于处理客户端访问请求的线程组中包含第二线程,所述装置包括:
第一调用模块,用于调用第二线程执行以下操作:处理完任一访问请求后,将处理结果存储到指定的存储空间;
第二调用模块,用于调用第一线程从所述指定的存储空间获取所述处理结果并进行返回;
所述第一调用模块,包括:
建立模块,用于在内存空间中为各第一线程建立存储队列;
分配告知模块,用于将任一访问请求分配给第二线程处理的同时,将接收所述访问请求的第一线程的标识告知第二线程,供第二线程处理完所述访问请求后,基于所述标识将处理结果存入对应的第一线程的存储队列中;
所述第二调用模块,还用于:
为所述第一线程设置周期性的超时事件,以使第一线程在所述超时事件到来时从存储队列中读取所述处理结果并进行返回。
5.根据权利要求4所述的提高服务器的稳定性的装置,其特征在于,所述超时事件的周期为5~10毫秒。
6.根据权利要求4所述的提高服务器的稳定性的装置,其特征在于,所述第二调用模块,还用于:
在返回所述处理结果之后,继续调用所述第一线程将所述指定的存储空间中的所述处理结果清除。
7.一种服务器,其特征在于,包括如权利要求4~6中任一项所述的提高服务器的稳定性的装置。
CN201510669430.7A 2015-10-15 2015-10-15 一种提高服务器的稳定性的方法、装置及服务器 Active CN106598706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510669430.7A CN106598706B (zh) 2015-10-15 2015-10-15 一种提高服务器的稳定性的方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510669430.7A CN106598706B (zh) 2015-10-15 2015-10-15 一种提高服务器的稳定性的方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN106598706A CN106598706A (zh) 2017-04-26
CN106598706B true CN106598706B (zh) 2022-11-08

Family

ID=58553511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510669430.7A Active CN106598706B (zh) 2015-10-15 2015-10-15 一种提高服务器的稳定性的方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN106598706B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920284A (zh) * 2018-06-06 2018-11-30 亚信科技(中国)有限公司 共享内存访问方法及系统
CN111124702B (zh) * 2019-11-22 2023-03-21 腾讯科技(深圳)有限公司 性能数据采集方法、装置和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852209A (zh) * 2006-05-31 2006-10-25 北京和利时系统工程股份有限公司 一种分布式控制系统中的远程过程调用方法及系统
CN103064778A (zh) * 2011-10-20 2013-04-24 阿里巴巴集团控股有限公司 一种服务器性能测试方法、装置及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206807B2 (en) * 2003-01-21 2007-04-17 Bea Systems, Inc. Asynchronous invoking a remote web service on a server by a client who passes on a received invoke request from application code residing on the client
CN101196833B (zh) * 2006-12-07 2013-02-27 国际商业机器公司 用于存储器利用的方法和装置
CN100430898C (zh) * 2006-12-20 2008-11-05 金魁 一种多线程管理的应用系统
US7882173B2 (en) * 2008-06-30 2011-02-01 International Business Machines Corporation Interactive remote command execution over a stateless client/server network protocol
CN102025652B (zh) * 2010-06-04 2012-07-04 西本新干线电子商务有限公司 服务总线以及消息处理方法
CN102340545A (zh) * 2011-10-31 2012-02-01 深圳市五巨科技有限公司 服务器及其数据处理方法
CN104133724B (zh) * 2014-04-03 2015-08-19 腾讯科技(深圳)有限公司 并发任务调度方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852209A (zh) * 2006-05-31 2006-10-25 北京和利时系统工程股份有限公司 一种分布式控制系统中的远程过程调用方法及系统
CN103064778A (zh) * 2011-10-20 2013-04-24 阿里巴巴集团控股有限公司 一种服务器性能测试方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A real-time performance comparison of distributable threads and event channels;Y. Zhang等;《11th IEEE Real Time and Embedded Technology and Applications Symposium》;20050321;第497-506页 *
面向机群文件系统的高可靠消息传输机制;周江等;《华中科技大学学报(自然科学版)》;20110617;第139-143页 *

Also Published As

Publication number Publication date
CN106598706A (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
CN109582455B (zh) 多线程任务处理方法、装置及存储介质
US9501319B2 (en) Method and apparatus for scheduling blocking tasks
US9027028B2 (en) Controlling the use of computing resources in a database as a service
US10033816B2 (en) Workflow service using state transfer
US20150363229A1 (en) Resolving task dependencies in task queues for improved resource management
US9778962B2 (en) Method for minimizing lock contention among threads when tasks are distributed in multithreaded system and apparatus using the same
CN105786603B (zh) 一种基于分布式的高并发业务处理系统及方法
WO2017016421A1 (zh) 一种集群中的任务执行方法及装置
CN111274015A (zh) 一种配置方法、装置和数据处理服务器
US9256506B1 (en) System and method for performing operations on target servers
US20150081914A1 (en) Allocation of Resources Between Web Services in a Composite Service
CN109033814B (zh) 智能合约触发方法、装置、设备及存储介质
CN111026541B (zh) 渲染资源调度方法、装置、设备及存储介质
CN106775948B (zh) 一种基于优先级的云任务调度方法及装置
US20150348177A1 (en) Managing lease transactions in distributed systems
CN107357640B (zh) 多线程数据库的请求处理方法及装置、电子设备
CN106598706B (zh) 一种提高服务器的稳定性的方法、装置及服务器
CN111831411A (zh) 任务处理方法、装置、存储介质及电子设备
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN111290842A (zh) 一种任务执行方法和装置
US9407721B2 (en) System and method for server selection using competitive evaluation
CN112188015A (zh) 客服会话请求的处理方法、装置及电子设备
JP2013182502A (ja) リソース配分システム、リソース配分方法、及びリソース配分プログラム
CN106571935B (zh) 一种资源调度的方法与设备
CN115202842A (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
GR01 Patent grant
GR01 Patent grant