CN106371900B - 一种实现异步调用的数据处理方法及装置 - Google Patents
一种实现异步调用的数据处理方法及装置 Download PDFInfo
- Publication number
- CN106371900B CN106371900B CN201510439850.6A CN201510439850A CN106371900B CN 106371900 B CN106371900 B CN 106371900B CN 201510439850 A CN201510439850 A CN 201510439850A CN 106371900 B CN106371900 B CN 106371900B
- Authority
- CN
- China
- Prior art keywords
- processed
- task
- asynchronous call
- logic controller
- storage structure
- 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
Links
Images
Landscapes
- Telephone Function (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种实现异步调用的数据处理方法,所述方法包括:逻辑控制器创建异步调用链式存储结构,所述逻辑控制器由系统预先创建;所述逻辑控制器将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中,并为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系;当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务,并将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。与现有技术相比,本发明实施例利用异步调用链式存储结构存储待处理任务,不需要编写复杂的异步化代码即可实现异步调用,同时异步调用的数据处理效率较高。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种实现异步调用的数据处理方法及装置。
背景技术
计算机在数据处理中可能遇到比较耗时的任务,在调用这种任务处理代码时,系统如果持续等待,可能会严重影响程序性能。例如,某个程序启动后需要执行打开文件读出其中的数据,再根据这些数据进行一系列初始化处理的耗时任务,那么程序主窗口的程序则不能及时执行,导致程序主窗口将迟迟不能显示,降低用户体验。
目前,通过异步调用的实现可以把上述问题轻松化解。具体的,可以把整个初始化处理的任务放进一个单独线程,而主线程启动此线程后系统不会持续等待,而是同时启动主窗口程序的线程,让主窗口瞬间显示出来。也就是说,借助异步调用处理耗时的任务,使得用户的体验得到增强。
但是,现有的实现异步调用的方法都比较复杂,例如利用jdk中提供的线程库,直接采用线程或线程池的方式对任务进行异步化,或者使用android sdk中提供的HandlerThread对任务进行异步化,这些方式都需要编写复杂的异步化代码,而且实现异步调用的数据处理效率较低。
发明内容
有鉴于此,本发明提供了一种实现异步调用的数据处理方法及装置,能够提高实现异步调用的数据处理效率。
一方面,本发明提供了一种实现异步调用的数据处理方法,所述方法包括:
逻辑控制器创建异步调用链式存储结构,所述逻辑控制器由系统预先创建;
所述逻辑控制器将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中,并为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系;
当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务,并将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。
优选地,所述方法还包括:
当所述逻辑控制器获知当前待处理任务完成时,从所述异步调用链式存储结构中取出所述当前待处理任务的下一个待处理任务,继续执行所述将所述待处理任务中的回调函数分配到与其对应的工作线程中执行的步骤。
优选地,所述方法还包括:
当所述逻辑控制器获知所述异步调用链式存储结构为空时,删除所述异步调用链式存储结构。
优选地,所述异步调用链式存储结构为队列。
优选地,所述方法还包括:
当所述逻辑控制器接收到预设的任务暂停触发指令时,将当前待处理任务挂起;并在所述逻辑控制器接收到预设的任务恢复触发指令时,将挂起的当前待处理任务恢复执行。
优选地,所述方法还包括:
所述逻辑控制器将自身控制的异步调用链式存储结构拼接到第一逻辑控制器创建的异步调用链式存储结构中,所述第一逻辑控制器由系统预先创建,且不同于所述逻辑控制器;
所述第一逻辑控制器控制所述逻辑控制器的异步调用链式存储结构。
另一方面,本发明还提供了一种实现异步调用的数据处理装置,所述装置包括:
创建模块,用于创建异步调用链式存储结构;
存储模块,用于将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中;
第一分配模块,用于为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系;
取出模块,用于当接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务;
第二分配模块,用于将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。
优选地,所述装置还包括:
触发模块,用于当获知当前待处理任务完成时,触发所述取出模块从所述异步调用链式存储结构中取出所述当前待处理任务的下一个待处理任务。
优选地,所述装置还包括:
删除模块,用于当获知所述异步调用链式存储结构为空时,删除所述异步调用链式存储结构。
优选地,所述装置还包括:
挂起模块,用于当接收到预设的任务暂停触发指令时,将当前待处理任务挂起;
恢复模块,用于在接收到预设的任务恢复触发指令时,将挂起的当前待处理任务恢复执行。
本发明的实现异步调用的数据处理方法中,逻辑控制器首先创建异步调用链式存储结构,所述逻辑控制器由系统预先创建。其次,所述逻辑控制器将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中,并为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系。当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务,并将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。与现有技术相比,本发明利用异步调用链式存储结构存储待处理任务,不需要编写复杂的异步化代码即可实现异步调用,同时异步调用的数据处理效率较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种实现异步调用的数据处理方法流程图;
图2为本发明提供的一种实现异步调用的数据处理装置结构示意图;
图3为本发明提供的移动终端的部分结构的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例提供的实现异步调用的数据处理方式应用于Android系统或IOS系统中,着重于对异步化功能的简单化实现,权衡代码开发量与后续维护工作的工作量,最大程度简化异步开发,提高实现异步调用的数据处理效率。
下面对本发明实施例进行描述。
参考图1,图1为本实施例提供的一种实现异步调用的数据处理方法流程图,具体可以包括:
S101:逻辑控制器创建异步调用链式存储结构,所述逻辑控制器由系统预先创建。
S102:所述逻辑控制器将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中,并为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系。
S103:当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务,并将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。
在S101中,首先由系统创建逻辑控制器,所述系统可以为Android系统,也可以为IOS系统,或者其他可以实现异步化的系统。所述逻辑控制器用于控制整个实现异步调用的数据处理过程,作为实现异步调用的数据处理的执行主体。
另外,S101中的异步调用链式存储结构用于实现异步调用的存储功能。具体的,所述异步调用链式存储结构可以为队列,例如为异步调用队列,也可以为链表。
在S102中,逻辑控制器首先确定待处理任务,并将确定的待处理任务存储于预先创建的异步调用链式存储结构中,例如为存储于异步调用队列中。值得注意的是,当待处理任务之间存在先后执行顺序关系时,所述逻辑控制器按照先后执行顺序关系将待处理任务存储于异步调用链式存储结构中。
在S102中,存储于异步调用链式存储结构中的各个待处理任务中至少包括一个回调函数,所述回调函数是一个通过函数指针调用的函数,用于实现该待处理任务的功能。
实际操作中,为了实现异步调用,所述逻辑控制器为所述异步调用链式存储结构中的回调函数分别分配一个工作线程,也就是说,所述逻辑控制器建立所述异步调用链式存储结构中的回调函数与工作线程的对应关系。具体的,在Android系统中,所述逻辑控制器通过将回调函数与Looper对象绑定,实现将该回调函数分配到该Looper对象所属的线程中的功能。
值得注意的是,由于所述异步调用链式存储结构中不同的待处理任务的执行时间不同,所以为了节约资源并充分利用有限的系统资源,本实施例中不同的待处理任务中的回调函数可以分配相同的工作线程。
在S103中,所述逻辑控制器实时检测是否接收到指令,当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务。具体的,所述逻辑控制器从所述异步调用链式存储结构中取出第一个待处理任务。
实际应用中,所述逻辑控制器取出待处理任务后,确定所述待处理任务中包括的回调函数,并将所述回调函数分配到与其对应的工作线程中执行。具体的,所述逻辑控制器在预先分配的回调函数与工作线程的对应关系中,查询与所述回调函数对应的工作线程,并将这些回调函数分配到与其对应的工作线程中执行,实现异步调用。
在S103中,在当前待处理任务中的回调函数均在对应的工作线程中执行完成后,所述逻辑控制器获知所述当前待处理任务完成。此时,所述逻辑控制器继续从该异步调用链式存储结构中取出所述当前待处理任务的下一个待处理任务,并对该待处理任务进行异步化处理。具体的,将该待处理任务中的回调函数分配到与其对应的工作线程中执行。
值得注意的是,当所述逻辑控制器获知所述异步调用链式存储结构为空时,即所述异步调用链式存储结构中的待处理任务均被完成时,删除该异步调用链式存储结构,释放系统资源。
另外,本实施例通过利用异步调用链式存储结构存储待处理任务,能够实现异步调用的数据处理过程中的挂起和延时执行各个异步调用的功能。具体的,当所述逻辑控制器接收到预设的任务暂停触发指令时,将当前待处理任务挂起。也就是说,暂停该当前待处理任务的执行。在所述逻辑控制器接收到预设的任务恢复触发指令时,将挂起的当前待处理任务恢复执行。也就是说,暂停的待处理任务恢复继续执行。可以理解的是,本实施例能够自由的控制异步调用的执行时间,为异步化实现增加更多的灵活性,同时兼容以其他方式实现的异步化组件。
另外,本实施例的应用系统中可以包括预先创建的多于一个逻辑控制器,所述逻辑控制器将自身控制的异步调用链式存储结构拼接到第一逻辑控制器创建的异步调用链式存储结构中,所述第一逻辑控制器由系统预先创建,且不同于所述逻辑控制器;所述第一逻辑控制器控制所述逻辑控制器的异步调用链式存储结构。
举例说明,本实施例的应用系统中包括的多于一个逻辑控制器,例如包括逻辑控制器A和逻辑控制器B。所述逻辑控制器A可以将自身控制的异步调用链式存储结构拼接到逻辑控制器B创建的异步调用链式存储结构中。也就是说,逻辑控制器A将自己的待处理任务交给逻辑控制器B进行异步化处理。逻辑控制器B将逻辑控制器A的异步调用链式存储结构,例如为异步调用队列,拼接到自身的异步操作队列中,从而逻辑控制器B可以组合调用来两个自异步调用队列中的待处理任务。可以理解的是,本实施例的组合调用处理能够节约系统资源。
本发明实施例中的实现异步调用的数据处理方法中,逻辑控制器首先创建异步调用链式存储结构,所述逻辑控制器由系统预先创建。其次,所述逻辑控制器将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中,并为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系。当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务,并将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。与现有技术相比,本发明实施例利用异步调用链式存储结构存储待处理任务,不需要编写复杂的异步化代码即可实现异步调用,同时异步调用的数据处理效率较高。
参考图2,图2为本实施例提供的一种实现异步调用的数据处理装结构示意图,所述装置可以包括:
创建模块201,用于创建异步调用链式存储结构;
存储模块202,用于将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中;
第一分配模块203,用于为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系;
取出模块204,用于当接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务;
第二分配模块205,用于将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。
实际应用中,所述装置还包括:
触发模块,用于当获知当前待处理任务完成时,触发所述取出模块从所述异步调用链式存储结构中取出所述当前待处理任务的下一个待处理任务。
为了节约系统资源,所述装置还包括:
删除模块,用于当获知所述异步调用链式存储结构为空时,删除所述异步调用链式存储结构。
另外,所述装置还包括:
挂起模块,用于当接收到预设的任务暂停触发指令时,将当前待处理任务挂起;
恢复模块,用于在接收到预设的任务恢复触发指令时,将挂起的当前待处理任务恢复执行。
本发明实施例中的实现异步调用的数据处理装置中,创建模块用于创建异步调用链式存储结构。存储模块用于将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中。第一分配模块用于为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系。取出模块用于当接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务。第二分配模块用于将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。与现有技术相比,本发明实施例利用异步调用链式存储结构存储待处理任务,不需要编写复杂的异步化代码即可实现异步调用,同时异步调用的数据处理效率较高。
本发明实施例还提供了一种终端,如图3所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图3示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图3,手机包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、传感器350、音频电路360、无线保真(wireless fidelity,WiFi)模块370、处理器380、以及电源390等部件。本领域技术人员可以理解,图3中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对手机的各个构成部件进行具体的介绍:
RF电路310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器320可用于存储软件程序以及模块,处理器380通过运行存储在存储器320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与手机300的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括触控面板331以及其他输入设备332。触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。除了触控面板331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图3中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机300还可包括至少一种传感器350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路360、扬声器361,传声器362可提供用户与手机之间的音频接口。音频电路360可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器380处理后,经RF电路310以发送给比如另一手机,或者将音频数据输出至存储器320以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块370,但是可以理解的是,其并不属于手机300的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器380可包括一个或多个处理单元;优选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
手机300还包括给各个部件供电的电源390(比如电池),优选的,电源可以通过电源管理系统与处理器380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机300还可以包括摄像头、蓝牙模块等,在此不再赘述。
具体在本实施例中,终端中的处理器380会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器320中,并由处理器380来运行存储在存储器320中的应用程序,从而实现各种功能:
逻辑控制器创建异步调用链式存储结构,所述逻辑控制器由系统预先创建;
所述逻辑控制器将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中,并为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系;
当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务,并将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。
优选地,所述方法还包括:
当所述逻辑控制器获知当前待处理任务完成时,从所述异步调用链式存储结构中取出所述当前待处理任务的下一个待处理任务,继续执行所述将所述待处理任务中的回调函数分配到与其对应的工作线程中执行的步骤。
优选地,所述方法还包括:
当所述逻辑控制器获知所述异步调用链式存储结构为空时,删除所述异步调用链式存储结构。
优选地,所述异步调用链式存储结构为队列。
优选地,所述方法还包括:
当所述逻辑控制器接收到预设的任务暂停触发指令时,将当前待处理任务挂起;并在所述逻辑控制器接收到预设的任务恢复触发指令时,将挂起的当前待处理任务恢复执行。
优选地,所述方法还包括:
所述逻辑控制器将自身控制的异步调用链式存储结构拼接到第一逻辑控制器创建的异步调用链式存储结构中,所述第一逻辑控制器由系统预先创建,且不同于所述逻辑控制器;
所述第一逻辑控制器控制所述逻辑控制器的异步调用链式存储结构。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明实施例所提供的一种实现异步调用的数据处理方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种实现异步调用的数据处理方法,其特征在于,所述方法包括:
逻辑控制器创建用于实现异步调用的存储功能的异步调用链式存储结构,所述异步调用链式存储结构采用队列或者链表,所述逻辑控制器由系统预先创建;
所述逻辑控制器将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中,并为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系;
当所述逻辑控制器接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务,并将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述逻辑控制器获知当前待处理任务完成时,从所述异步调用链式存储结构中取出所述当前待处理任务的下一个待处理任务,继续执行所述将所述待处理任务中的回调函数分配到与其对应的工作线程中执行的步骤。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述逻辑控制器获知所述异步调用链式存储结构为空时,删除所述异步调用链式存储结构。
4.根据权利要求1所述的方法,其特征在于,所述异步调用链式存储结构为队列。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述逻辑控制器接收到预设的任务暂停触发指令时,将当前待处理任务挂起;并在所述逻辑控制器接收到预设的任务恢复触发指令时,将挂起的当前待处理任务恢复执行。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述逻辑控制器将自身控制的异步调用链式存储结构拼接到第一逻辑控制器创建的异步调用链式存储结构中,所述第一逻辑控制器由系统预先创建,且不同于所述逻辑控制器;
所述第一逻辑控制器控制所述逻辑控制器的异步调用链式存储结构。
7.一种实现异步调用的数据处理装置,其特征在于,所述装置包括:
创建模块,用于创建用于实现异步调用的存储功能的异步调用链式存储结构,所述异步调用链式存储结果采用队列或者链表;
存储模块,用于将包括至少一个回调函数的待处理任务存储于所述异步调用链式存储结构中;
第一分配模块,用于为所述待处理任务中的回调函数分别分配一个工作线程,得到回调函数与工作线程的对应关系;
取出模块,用于当接收到预设的任务执行触发指令时,从所述异步调用链式存储结构中取出一个待处理任务;
第二分配模块,用于将所述待处理任务中的回调函数分配到与其对应的工作线程中执行。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
触发模块,用于当获知当前待处理任务完成时,触发所述取出模块从所述异步调用链式存储结构中取出所述当前待处理任务的下一个待处理任务。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
删除模块,用于当获知所述异步调用链式存储结构为空时,删除所述异步调用链式存储结构。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
挂起模块,用于当接收到预设的任务暂停触发指令时,将当前待处理任务挂起;
恢复模块,用于在接收到预设的任务恢复触发指令时,将挂起的当前待处理任务恢复执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510439850.6A CN106371900B (zh) | 2015-07-23 | 2015-07-23 | 一种实现异步调用的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510439850.6A CN106371900B (zh) | 2015-07-23 | 2015-07-23 | 一种实现异步调用的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106371900A CN106371900A (zh) | 2017-02-01 |
CN106371900B true CN106371900B (zh) | 2020-06-05 |
Family
ID=57880702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510439850.6A Active CN106371900B (zh) | 2015-07-23 | 2015-07-23 | 一种实现异步调用的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106371900B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133112B (zh) * | 2017-04-28 | 2019-12-03 | 维沃移动通信有限公司 | 一种异步处理fsync的方法及移动终端 |
CN107239275A (zh) * | 2017-05-17 | 2017-10-10 | 努比亚技术有限公司 | 应用运行方法、终端及计算机可读存储介质 |
CN108874557B (zh) * | 2018-05-24 | 2022-03-22 | 广东睿江云计算股份有限公司 | 一种前端接口处理方法及系统 |
CN110659141B (zh) * | 2018-06-30 | 2022-01-04 | 武汉斗鱼网络科技有限公司 | 一种指令执行的方法以及相关设备 |
CN109918209B (zh) * | 2019-01-28 | 2021-02-02 | 深兰科技(上海)有限公司 | 一种线程间通信的方法和设备 |
CN112052078A (zh) * | 2019-06-06 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种耗时的确定方法和装置 |
CN111258782B (zh) * | 2020-01-17 | 2023-11-03 | 京东科技信息技术有限公司 | 任务队列的处理方法和装置 |
CN111858002B (zh) * | 2020-07-16 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 一种基于异步io的并发处理方法、系统及装置 |
CN113918242A (zh) * | 2020-11-23 | 2022-01-11 | 京东科技控股股份有限公司 | 应用程序编程接口调用方法、装置、电子设备和存储介质 |
CN112738417A (zh) * | 2020-12-24 | 2021-04-30 | 浙江赫千电子科技有限公司 | 一种车载视频的数据采集存储显示方法 |
CN113326039B (zh) * | 2021-06-21 | 2022-02-18 | 深圳市网通兴技术发展有限公司 | 医疗代码流程建模的异步代码生成方法及系统 |
CN114205339A (zh) * | 2021-12-01 | 2022-03-18 | 海南同享数字科技有限公司 | 一种异步通讯回调方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770395A (zh) * | 2008-12-29 | 2010-07-07 | 上海科泰世纪科技有限公司 | Applet线程模型及基于Applet线程模型的调用构件的方法 |
CN101770394A (zh) * | 2008-12-29 | 2010-07-07 | 上海科泰世纪科技有限公司 | 基于构件接口的异步调用方法 |
CN102567111A (zh) * | 2011-12-23 | 2012-07-11 | 深圳市融创天下科技股份有限公司 | 一种异步过程调用的方法、系统和终端设备 |
CN102841803A (zh) * | 2011-06-24 | 2012-12-26 | 中兴通讯股份有限公司 | 一种异步调用java线程中本地代码的方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249355B2 (en) * | 2002-12-18 | 2007-07-24 | Microsoft Corporation | Unified network thread management |
US7363369B2 (en) * | 2003-10-16 | 2008-04-22 | International Business Machines Corporation | Monitoring thread usage to dynamically control a thread pool |
JP4414447B2 (ja) * | 2007-04-25 | 2010-02-10 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理システムおよび情報処理方法 |
CN102222037B (zh) * | 2010-04-15 | 2014-04-02 | 国际商业机器公司 | 用于定位java程序的瓶颈的方法和设备 |
CN104063279B (zh) * | 2013-03-20 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 任务调度方法、装置和终端 |
-
2015
- 2015-07-23 CN CN201510439850.6A patent/CN106371900B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770395A (zh) * | 2008-12-29 | 2010-07-07 | 上海科泰世纪科技有限公司 | Applet线程模型及基于Applet线程模型的调用构件的方法 |
CN101770394A (zh) * | 2008-12-29 | 2010-07-07 | 上海科泰世纪科技有限公司 | 基于构件接口的异步调用方法 |
CN102841803A (zh) * | 2011-06-24 | 2012-12-26 | 中兴通讯股份有限公司 | 一种异步调用java线程中本地代码的方法及装置 |
CN102567111A (zh) * | 2011-12-23 | 2012-07-11 | 深圳市融创天下科技股份有限公司 | 一种异步过程调用的方法、系统和终端设备 |
Non-Patent Citations (3)
Title |
---|
Web服务组合执行引擎中服务异步调用机制研究;李玲勇 等;《计算机应用研究》;20100215;第27卷(第2期);第558-562页 * |
基于驱动程序的异步过程回调技术;屈景辉 等;《医疗卫生装备》;20031230(第10期);第251-252页 * |
物联网物流统一信息系统异步消息回调机制分析;林兴志;《The 2nd Asia-Pacific Conference on Information Network and Digital Content Security(2011APCID)》;20110701;第142-145页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106371900A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106371900B (zh) | 一种实现异步调用的数据处理方法及装置 | |
US11237724B2 (en) | Mobile terminal and method for split screen control thereof, and computer readable storage medium | |
EP3531290A1 (en) | Data backup method, apparatus, electronic device, storage medium, and system | |
US20160315999A1 (en) | Device and method for associating applications | |
EP3404541B1 (en) | Application control method and related device | |
CN106547844B (zh) | 一种用户界面的处理方法和装置 | |
CN106708554B (zh) | 程序运行方法及装置 | |
CN102830909A (zh) | 一种用户界面的图标管理方法及触控设备 | |
US10754684B2 (en) | Method for controlling process and related device | |
CN107066268B (zh) | 微件应用的显示位置切换方法及装置 | |
CN106293901B (zh) | 一种终端应用的进程管理方法及装置 | |
CN107908407B (zh) | 编译方法、装置及终端设备 | |
CN104077184B (zh) | 一种应用程序的进程控制方法及计算机系统 | |
CN106371749A (zh) | 一种终端控制的方法和装置 | |
EP2869604B1 (en) | Method, apparatus and device for processing a mobile terminal resource | |
EP3418871B1 (en) | Swiping response acceleration method and related products | |
CN108431767A (zh) | 一种加载软件程序的方法、用户终端及存储介质 | |
US20200125369A1 (en) | Method, device, and terminal for accelerating startup of application | |
KR20110095586A (ko) | 단말기의 터치 이벤트 수집 방법 및 장치 | |
CN106095423B (zh) | 提供浏览服务的方法、终端及服务器 | |
CN110677456A (zh) | 一种资源配置的方法及设备 | |
WO2015067206A1 (zh) | 一种文件查找的方法及终端 | |
CN106776041B (zh) | 一种数据处理方法及装置 | |
JP6685538B2 (ja) | アプリケーション加速方法およびデバイス | |
CN104461273A (zh) | 一种信息显示方法和终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |