数据通信的方法、装置及计算机可读存储介质与流程

文档序号:14653574发布日期:2018-06-08 22:30阅读:151来源:国知局
数据通信的方法、装置及计算机可读存储介质与流程

本发明涉及互联网技术领域,特别涉及数据通信的方法、装置及计算机可读存储介质。



背景技术:

Electron是一款可以利用网页技术开发跨平台桌面应用的框架,Electron提供了一个能通过JavaScript和HTML创建桌面应用的平台,同时集成Node来授予网页访问底层系统的权限,目前可以开发桌面应用。

Electron中包括多个进程,进程与进程之间数据通信的方式都是采用消息机制,若采用同步消息的机制,在同步消息还没返回之前,进程需要一直等待,使得开发的页面会比较卡顿;若采用异步消息的机制,则异步消息的返回会有较慢,使得页面操作存在滞后。



技术实现要素:

本发明实施例提供了一种数据通信的方法、装置及计算机可读存储介质。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本发明实施例的第一方面,提供了一种数据通信的方法,应用于桌面开发应用Electron中,所述桌面开发应用Electron中包括至少两个进程,每个进程与一个共享数据存储区建立了映射关系,所述方法包括:

运行当前进程,所述当前进程获取互斥信号量资源,其中,所述互斥信号量资源表示所述桌面开发应用Electron预设的共享数据存储区的锁定状态;

当所述互斥信号量资源为第一设定值时,所述当前进程锁定所述共享数据存储区,并对所述共享数据存储区,进行对应的数据通信操作。

本发明一实施例中,所述当前进程获取互斥信号量资源包括:

所述当前进程获取互斥信号量名称;

根据所述互斥信号量名称,从所述桌面开发应用Electron的信号量存储区中获取所述互斥信号量资源。

本发明一实施例中,所述进行对应的数据通信操作之后,还包括:

所述当前进程释放所述共享数据存储区。

本发明一实施例中,所述方法还包括:

当确定所述当前进程锁定所述共享数据存储区时,将信号量存储区中的所述互斥信号量资源配置为第二设定值,以及当确定所述当前进程释放所述共享数据存储区时,将信号量存储区中的所述互斥信号量资源配置为第一设定值。

根据本发明实施例的第二方面,提供一种数据通信的装置,应用于桌面开发应用Electron中,所述桌面开发应用Electron中包括至少两个进程,每个进程与一个共享数据存储区建立了映射关系,所述装置包括:第一进程单元,且所述第一进程单元包括:

获取模块,用于获取互斥信号量资源,其中,所述互斥信号量资源表示所述桌面开发应用Electron预设的共享数据存储区的锁定状态;

锁定通信模块,用于当所述互斥信号量资源为第一设定值时,锁定所述共享数据存储区,并对所述共享数据存储区,进行对应的数据通信操作。

本发明一实施例中,所述获取模块,具体用于获取互斥信号量名称,并根据所述互斥信号量名称,从所述桌面开发应用Electron的信号量存储区中获取所述互斥信号量资源。

本发明一实施例中,所述第一进程单元还包括:

释放模块,用于进行对应的数据通信操作之后,释放所述共享数据存储区。

本发明一实施例中,所述装置还包括:

配置单元,用于当确定所述第一进程单元锁定所述共享数据存储区时,所述桌面开发应用Electron将信号量存储区中的所述互斥信号量资源配置为第二设定值;以及,当确定所述第一进程单元释放所述共享数据存储区时,将信号量存储区中的所述互斥信号量资源配置为第一设定值。

根据本发明实施例的第三方面,提供一种数据通信的装置,用于终端或服务器,所述装置应用于桌面开发应用Electron中,所述桌面开发应用Electron中包括至少两个进程,每个进程与一个共享数据存储区建立了映射关系,所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

运行当前进程,所述当前进程获取互斥信号量资源,其中,所述互斥信号量资源表示所述桌面开发应用Electron预设的共享数据存储区的锁定状态;

当所述互斥信号量资源为第一设定值时,所述当前进程锁定所述共享数据存储区,并对所述共享数据存储区,进行对应的数据通信操作。

根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述方法的步骤。

本发明实施例提供的技术方案可以包括以下有益效果:

本发明实施例中,桌面开发应用Electron中,每个进程与一个共享数据存储区建立了映射关系,并可通过互斥信号量,每个进程可锁定共享数据存储区,进行对应的数据通信操作,这样,一个进程改变了共享数据存储区中的数据时,其他进程也可直接觉察到,并不需要通过系统调用或者消息机制,即可实现了进程之间数据的通信,提高了进程之间数据通信的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种数据通信方法的流程图;

图2是根据一示例性实施例示出的一种数据通信方法的流程图;

图3是根据一示例性实施例示出的一种数据通信装置的框图;

图4是根据一示例性实施例示出的一种数据通信装置的框图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

桌面开发应用Electron中,每个进程与一个共享数据存储区建立了映射关系,并可通过互斥信号量,每个进程可锁定共享数据存储区,进行对应的数据通信操作,这样,一个进程改变了共享数据存储区中的数据时,其他进程也可直接觉察到,并不需要通过系统调用或者消息机制,即可实现了进程之间数据的通信,提高了进程之间数据通信的效率。

图1是根据一示例性实施例示出的一种数据通信方法的流程图。如图1所示,数据通信的过程应用于桌面开发应用Electron中,可包括:

步骤101:运行当前进程,当前进程获取互斥信号量资源。

本发明实施例中,桌面开发应用可是一种利用网页技术开发跨平台桌面的应用。例如:NW、heX、Electron等都可以是桌面开发应用。桌面开发应用中可包括两个或多个进程,每个进程都可以独立运行。例如:Electron中可包括主进程和至少一个渲染进程,每个进程都可独立运行。

目前现有的桌面开发应用Electron中没有共享数据存储区,而本发明实施例中,Electron中每个进程之间可基于共享数据存储区进行数据通信,因此,可预先配置桌面开发应用Electron中一个共享数据存储区,并且,每个进程与该共享数据存储区建立了映射关系。例如:可从终端或服务器的内存中获取一段内存区域配置为共享数据存储区,然后,配置每个进程时,将该共享数据存储区对应的地址区域写入,即建立每个进程与该共享数据存储区之间的映射关系。

由于两个或多个进程可共享一个数据存储区,因此,可配置一个互斥信号量来表示桌面开发应用Electron预设的共享数据存储区的锁定状态。互斥信号量资源为第一设定值,可对应表示共享数据存储区处于未锁定状态,而互斥信号量资源为第二设定值,可对应表示共享数据存储区处于锁定状态。例如:第一设定值为“0”,第二设定值为“1”。当然,也可两者互换。

这样,预先配置了共享数据存储区,进程与共享数据存储区之间的映射关系,以及互斥信号量后,该桌面开发应用Electron在开发桌面过程中,认可独立预先每个进程。其中,任意一个进程在进行数据通信时,都可基于配置的共享数据存储区来实现数据通信。

这样,运行当前进程的过程中,当前进程需获取互斥信号量资源。一般,当前进程需进行数据通信时,可获取到互斥信号量名称,然后,需来判断与互斥信号量名称对应的互斥信号量是否存在?若存在,可从桌面开发应用Electron的信号量存储区中获取与互斥信号量名称对应的互斥信号量资源。若不存在,则需配置互斥信号量以及对应的互斥信号量资源,即初始化互斥信号量,初始化成功后,也可从桌面开发应用Electron的信号量存储区中获取与互斥信号量名称对应的互斥信号量资源。因此,当前进程获取互斥信号量资源包括:当前进程获取互斥信号量名称;根据互斥信号量名称,从桌面开发应用Electron的信号量存储区中获取互斥信号量资源。

步骤102:当互斥信号量资源为第一设定值时,当前进程锁定共享数据存储区,并对共享数据存储区,进行对应的数据通信操作。

本发明实施例中,共享数据存储区的锁定状态与互斥信号量资源对应。互斥信号量资源可对应会拆的两种值,例如:第一设定值“1”,第二设定值“0”等。这样,当获取的互斥信号量资源为第一设定值时,可确定共享数据存储区处于未锁定状态,此时,当前进程可以基于共享数据存储区,进行对应的数据通信操作,因此,当前进程需首先锁定共享数据存储区,然后,对共享数据存储区,进行对应的数据通信操作。

若获取的互斥信号量资源不为第一设定值,若为第二设定值时,则表明共享数据存储区处于锁定状态,此时,不能进行对应的数据通信操作。

可见,本发明实施例中,桌面开发应用Electron中,每个进程与一个共享数据存储区建立了映射关系,并可通过互斥信号量,进程可锁定共享数据存储区,进行对应的数据通信操作。这样,由于进程与共享数据存储区之间的映射关系,一个进程改变了共享数据存储区中的数据时,其他进程也可直接觉察到,直接就可实现数据通信了,而无需在存储空间之间重复进行数据的复制,减少了数据复制的次数,提高了进程之间数据通信的效率。

当然,若当前进程获取的互斥信号量资源不为第一设定值时,即为第二设定值时,则表明共享数据存储区被锁定了,此时,其他进程在对共享数据存储区进行数据操作,当前进程需等待,继续获取互斥信号量资源,直至互斥信号量资源为第一设定值时,才可对共享数据存储区,进行对应的数据通信操作。因此,本发明一实施例中,当前进程进行对应的数据通信操作之后,还包括:当前进程释放共享数据存储区。

可见,互斥信号量资源是变化的,共享数据存储区被锁定时,对应第二设定值,而共享数据存储区被释放时,可对应第一设定值。因此,在当前进程锁定或释放共享数据存储区的过程中,桌面开发应用Electron还需更新互斥信号量资源,即当确定当前进程锁定共享数据存储区时,将信号量存储区中的互斥信号量资源配置为第二设定值,以及当确定当前进程释放共享数据存储区时,将信号量存储区中的互斥信号量资源配置为第一设定值。具体可由桌面开发应用Electron中一个设定进程来执行,例如:主进程,这样,当前进程在锁定或释放共享数据存储区时,会发送通知消息给主进程,从而,主进程确定当前进程锁定或释放共享数据存储区时,对应更新互斥信号量资源。

下面将操作流程集合到具体实施例中,举例说明本公开实施例提供的方法。

本实施例中,桌面开发应用Electron对应为Electon,Electon中包括了多个进程。从内存中获取一段内存区域,配置为共享数据存储区,并建立了共享数据存储区与每个进程之间的映射关系。即Electon中配置了共享数据存储区。

图2是根据一示例性实施例示出的一种数据通信方法的流程图。如图2所示,数据通信过程应用于Electron中,可包括:

步骤201:当前进程获取互斥信号量名称。

Electon每个进程可独立运行,一个进程需进行数据通信了,该进程可为当前进程,获取互斥信号量名称。

步骤202:当前进程判断与互斥信号量名称对应的互斥信号量是否存在?若在,执行步骤204,否则,执行步骤203。

可预先配置互斥信号量与共享数据存储区的锁定状态之间的对应关系,也可由当前进程来初始化互斥信号量。

步骤203:当前进程初始化互斥信号量,并转入步骤204。

即可根据共享数据存储区的锁定状态,配置互斥信号量资源,以及将互斥信号量资源存入信号量存储区中。

步骤204:当前进程从Electon的信号量存储区中获取互斥信号量资源。

步骤205:当前进程判断获取的互斥信号量资源是否为第一设定值“0”?若是,执行步骤206。否则,可返回步骤204

互斥信号量资源为第一设定值“0”,则表明共享数据存储区处于未锁定状态,可执行步骤206。互斥信号量资源为第二设定值“1”,则表明共享数据存储区处于锁定状态,需等待,可返回步骤204。当然,另一实施例中,也可流程结束。

步骤206:当前进程锁定共享数据存储区,并可通知Electon中设定进程将信号量存储区中的互斥信号量资源配置为第二设定值“1”。

由于当前进程需对共享数据存储区进行操作了,因此,需锁定共享数据存储区,并需将互斥信号量资源更新为第二设定值“1”。这样,其他进程不能操作共享数据存储区了。该更新过程可由当前进程完成,也可由Electon中其他进程完成。即设定进程包括当前进程或其他进程。

步骤207:当前进程对共享数据存储区,进行对应的数据通信操作。

这样,当前进程对共享数据存储区进行数据更改时,由于共享数据存储区与进程之间的映射关系,其他进程也获悉了共享数据存储区中的数据改变,即可实现了进程之间的数据通信。

步骤208:当前进程释放共享数据存储区,并通知Electon中设定进程将信号量存储区中的互斥信号量资源配置为第一设定值“0”。

当前进程完成了对应数据通信操作,此时需释放共享数据存储区,这样,将互斥信号量资源配置为第一设定值“0”后,其他进程需进行数据通信时,即可通过互斥信号量来操作共享数据存储区中的数据了。当然,这里,Electon中设定进程也可包括当前进程或其他进程。

可见,本实施例中,Electon中每个进程与一个共享数据存储区建立了映射关系,并可通过互斥信号量,每个进程可锁定共享数据存储区,进行对应的数据通信操作,这样,一个进程改变了共享数据存储区中的数据时,其他进程也可直接觉察到,并不需要通过系统调用或者消息机制,即可实现了进程之间数据的通信,提高了进程之间数据通信的效率。

当然,上述实施例中,步骤203中可能互斥信号量初始化过程不成功,此时,流程结束。而步骤204获取互斥信号量资源过程也可能一次获取不成功,可多进行几次获取过程,多次获取不成功后,流程也结束。或者,步骤206中,锁定共享数据存储区的过程也可能不成功,则流程也结束了。

下述为本公开装置实施例,可以用于执行本公开方法实施例。

根据上述数据通信的过程,可构建一种数据通信的装置,同样可应用于桌面开发应用Electron中。

图3是根据一示例性实施例示出的一种数据通信装置的框图。应用于桌面开发应用Electron中,其中,桌面开发应用Electron中包括至少两个进程,每个进程与一个共享数据存储区建立了映射关系,如图3所示,该装置包括:第一进程单元100,且第一进程单元包括:获取模块110和锁定通信模块120,其中,

获取模块110,用于获取互斥信号量资源,其中,互斥信号量资源表示桌面开发应用Electron预设的共享数据存储区的锁定状态。

锁定通信模块120,用于当互斥信号量资源为第一设定值时,锁定共享数据存储区,并对共享数据存储区,进行对应的数据通信操作。

本发明一实施例中,获取模块110,具体用于获取互斥信号量名称,并根据互斥信号量名称,从桌面开发应用Electron的信号量存储区中获取互斥信号量资源。

本发明一实施例中,第一进程单元还包括:

释放模块,用于进行对应的数据通信操作之后,释放共享数据存储区。

本发明一实施例中,装置还包括:

配置单元,用于当确定第一进程单元100锁定共享数据存储区时,桌面开发应用Electron将信号量存储区中的互斥信号量资源配置为第二设定值;以及,当确定第一进程单元100释放共享数据存储区时,将信号量存储区中的互斥信号量资源配置为第一设定值。

下面举例说明本公开实施例提供的装置。

图4是根据一示例性实施例示出的一种数据通信装置的框图。应用于桌面开发应用Electron中,桌面开发应用Electron中包括至少两个进程,每个进程与一个共享数据存储区建立了映射关系,如图4所示,该装置包括:第一进程单元100和配置单元200,其中,第一进程单元100包括:获取模块110、锁定通信模块120,以及释放模块130。

本实施例中,桌面开发应用Electron即为Electon,Electon中包括了多个进程。从内存中获取一段内存区域,配置为共享数据存储区,并建立了共享数据存储区与每个进程之间的映射关系。这样,第一进程单元100中的获取模块110可获取互斥信号量名称,并根据互斥信号量名称,从Electon的信号量存储区中获取互斥信号量资源。

当获取的互斥信号量资源为第一设定值“0”时,第一进程单元100中的锁定通信模块120可锁定共享数据存储区,并可通知配置单元200将信号量存储区中的互斥信号量资源配置为第二设定值“1”。并且,锁定通信模块120对共享数据存储区,进行对应的数据通信操作。

当完成了对共享数据存储区的数据通信操作后,第一进程单元100中的释放模块130可释放共享数据存储区,并通知配置单元200将信号量存储区中的互斥信号量资源配置为第一设定值“0”。

可见,本实施例中,Electon中每个进程与一个共享数据存储区建立了映射关系,并可通过互斥信号量,从而,桌面开发应用Electron中数据通信装置中的进程单元可锁定共享数据存储区,进行对应的数据通信操作,这样,一个进程单元改变了共享数据存储区中的数据时,其他进单元程也可直接觉察到,并不需要通过系统调用或者消息机制,即可实现了进程之间数据的通信,提高了进程单元之间数据通信的效率。

本发明一实施例中,提供一种数据通信的装置,用于终端或服务器,该装置可应用于桌面开发应用Electron中,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,处理器被配置为:

运行当前进程,当前进程获取互斥信号量资源,其中,互斥信号量资源表示桌面开发应用Electron预设的共享数据存储区的锁定状态;

当互斥信号量资源为第一设定值时,当前进程锁定共享数据存储区,并对共享数据存储区,进行对应的数据通信操作。

本发明一实施例中,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1