[发明专利]计算机实现的商品提供/消费方法及系统在审
申请号: | 201510254213.1 | 申请日: | 2015-05-18 |
公开(公告)号: | CN104915248A | 公开(公告)日: | 2015-09-16 |
发明(设计)人: | 邓必国 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06Q30/00 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 赵伟 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算机 实现 商品 提供 消费 方法 系统 | ||
技术领域
本发明涉及通信网络上的商品提供/消费,并具体地涉及计算机实现的商品提供/消费方法的方法及设备。
背景技术
在网络商品的提供/消费中通常使用到Java应用。在Java应用开发中,多线程间交互是比较常见的,且大多数交互使用生产者/消费者模式。Java中的生产者/消费者模型一般有三种方式:wait()/notify、await()/signal、阻塞队列。上述三种实现方式的原理一致,都需要针对独占空间来加/解锁,阻塞和唤醒线程。然而,在JAVA语言开发工具包(JDK)中加锁的成本是很高的,因为每次加锁可能都需要扫描全局代码路径。
例如,图1示出了现有技术中用于商品提供/消费的方法的示例性线程。该方法是对上述三种方式通用的方法。如图1所示,该方法包括以下步骤:
1、创建生产者线程(步骤S21)
2、判断缓冲区是否有商品(步骤S22)
3、如果缓冲区为空,则创建一个商品(步骤S23),如果缓冲区有商品,则线程进入阻塞状态(步骤S25),此步骤需要进行加/解锁
4、在创建商品后,将商品放入缓冲区(步骤S24),并同时唤醒消费者线程,此步骤需要加/解锁
5、创建消费者线程(步骤S31)
6、判断缓冲区是否有商品(步骤S32)
7、如果有商品,则消费掉该商品(步骤S33),并同时唤醒生产者线程
8、如果没有,则消费者线程阻塞(步骤S34)
可见上述方法中多次使用到了加/解锁、阻塞和唤醒,导致其实现的成本增高。
发明内容
因此,需要一种能够减轻或解决上述问题的商品提供/消费方法及其相关系统。
根据本发明的一个方案,提供了一种计算机实现的商品提供方法,包括:启动生产者线程;由所述生产者线程获取环形数据缓冲中当前能够存放商品的节点编号;以及将商品存放在所述环形数据缓冲中与所获取的节点编号相对应的位置处。
根据本发明的一个方案,提供了一种计算机实现的商品消费方法,其中,商品被存放在环形数据缓冲,所述方法包括:启动消费者流程;由所述消费者线程获取环形数据缓冲中存放所述商品的节点编号;以及所述消费者线程在所述环形数据缓冲中与所述节点编号对应的位置处消费所述商品。
根据本发明的一个方案,提供了一种商品提供系统,包括:线程启动模块,用于启动生产者线程;环形数据缓冲;以及控制模块,用于控制所述生产者线程获取所述环形数据缓冲中当前能够存放商品的节点编号,且将商品存放在所述环形数据缓冲中与所获取的节点编号相对应的位置处。
根据本发明的一个方案,提供了一种商品消费系统,包括:环形数据缓冲,用于存放商品;线程启动模块,用于启动消费者流程;以及控制模块,用于控制所述消费者线程获取所述环形数据缓冲中存放所述商品的节点编号,且控制所述消费者线程在所述环形数据缓冲中与所述节点编号对应的位置处消费所述商品。
利用本发明的上述方法和系统,由于不需要对线程进行加/解锁,阻塞和唤醒,可以有效地降低成本。
附图说明
通过下面结合附图对发明进行的详细描述,将使本发明的上述特征和优点更加明显,其中:
图1是示出现有技术的商品提供/消费方法的流程图;
图2是示出根据本发明的实施例的商品提供方法的示意流程图;
图3是示出根据本发明的实施例的商品消费方法的示意流程图;
图4是示出根据本发明的实施例的商品提供系统的示意性框图;
图5是示出根据本发明的实施例的商品消费系统的示意性框图;以及
图6是示出根据本发明的另一实施例的商品提供/消费方法的流程图。
具体实施方式
下面,参考附图详细说明本发明的优选实施方式。在附图中,虽然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组件。为了清楚和简明,对已知功能和结构的详细描述将被省略,以避免使本发明的主题不清楚。
图2示出了根据本发明的实施例的商品提供方法的示意流程图。如图2所示,该方法可包括:步骤210,启动生产者线程;步骤220,由生产者线程获取环形数据缓冲中当前能够存放商品的节点编号;以及步骤220,将商品存放在环形数据缓冲中与所获取的节点编号相对应的位置处。
可选地,该方法还可以包括创建生产者线程的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510254213.1/2.html,转载请声明来源钻瓜专利网。