首页 > 语言 > 关键词  > 编程最新资讯  > 正文

队列在编程中的实际应用

2010-08-11 14:47 · 稿源:Chinaz用户投稿

一:队列的概念、数据结构

队列(Queue)是运算受到限制的一种线性表。只允许在表的一端进行插入,而在另一端进行删除元素的线性表。队尾(rear)是允许插入的一端。队头(front)是允许删除的一端。空队列是不含元素的空表。

假设有个队列Q=(a1,a2,…,an),则a1为队头元素,an为队尾元素。元素入队的次序为a1,a2,…,an,而出队的次序为a1,a2,…,an。可见队列的操作是按照先进先出的原则进行的。

其他详细的介绍请在网上搜索很多资料。

二:PHP的队列

在PHP中队列以数组的形式表现。数组中的第一个元素作为队头,最后一个元素作为队尾,这样就可以操作这个队列了。

结果就是

网上有很多封装好的类,可以直接使用。

array_push:将一个或多个单元压入数组的末尾(入栈)

array_unshift:在数组开头插入一个或多个单元

array_pop:将数组最后一个单元弹出(出栈)

array_shift:将数组开头的单元移出数组

三:Ruby Starling

Starling是一个支持MemCache协议的轻量级持久化服务器。Starling是让创建网络访问队列或者多个队列异常简单,也就是说多点和多台机器间的异步工作进程。它是著名微博客网站Twitter开发用来处理大量的队列消息,以及保持服务的响应。Starling已经在生产环境中使用,不仅是Twitter在使用,FiveRuns同样在使用。FiveRuns甚至还根据自己的应用做了改进。

Starling和Memcache使用的是一个协议只是端口不一样。Starling使用的是22122端口,Memcache使用的是11211端口。

Ruby
tar xzvf ruby-1.9.1-p0.tar.gz
cd ruby-1.9.1-p0
./configure --prefix=/usr/local/huiyangruby
make
make install
Gem
tar -zxvf rubygems-1.3.6.tgz
cd rubygems-1.3.6
ruby setup.rb
Starling
gem install memcache-client starling
starling
starling & //后台执行
starling_top //查看PS信息

接下来你就可以使用队列做自己的事情啦。Starling和Memcache用法一样,两者配合处理更佳。

使用Memcache::addServer可以建立一个memcache连接池。他不同于connect与pconnect他是在有请求是才连接,无则端口连接。

Memcache::connect -- 打开一个到Memcache的连接。

Memcache::pconnect -- 打开一个到Memcache的长连接。

Memcache::close -- 关闭一个Memcache的连接。

Memcache::set -- 保存数据到Memcache服务器上。

Memcache::get -- 提取一个保存在Memcache服务器上的数据。

Memcache::replace -- 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)。

Memcache::delete -- 从Memcache服务器上删除一个保存的项目。

Memcache::flush -- 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)。

Memcache::getStats -- 获取当前Memcache服务器运行的状态。

四:张宴作品HTTPSQS

HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。

有兴趣的可以看看网址:https://blog.s135.com/httpsqs_1_2/

五:队列的应用

队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。(文/侯惠阳 PHPer.yang)

我的博客:https://hi.baidu.com/phper_yanghttps://www.phpx.in PHP交流)

举报

  • 相关推荐
  • 以色学校敦促家长“立刻”删除孩子手机上的社交

    凤凰网科技讯北京时间10月11日,据外媒报道,几所以色列和犹太人学校已经发出通知,敦促家长从孩子的智能手机上删除Instagram、X等社交媒体应用,以防止他们看到与巴以冲突有关的暴力图片和视频。一些以色列父母被告知,哈马斯预计将在周末开始发布劫持人质的视频,家长要在此之前从孩子的手机上删除社交媒体。

  • 万能AI编程工具包插件Sidekick 提供个性化编程帮助

    SidekickAI是一款强大的VisualStudioCode扩展,旨在帮助开发人员更快速、更高效地编写代码、提出问题和发现错误。它由GPT-4引擎提供支持,为开发者提供高效、便捷的编程体验。这些核心功能使SidekickAI成为了开发人员的得力助手,能够加速编码过程、提高代码质量,并提供了智能工具来解决复杂的开发任务。

  • 全球顶级编程类创新竞赛Junciton蓉城再启

    9月15日,JuncitonChina2023极客马拉松在位于成都新津的天府农博园主展馆拉开帷幕,近70支团队的360多位选手正式开始48小时的编程马拉松极限挑战。Junction极客马拉松起源于芬兰赫尔辛基,是创办于2015年的欧洲最大编程类创新竞赛,至今已在全球举办超过30场。对话会现场,诺基亚、Qt集团、维美德集团等30余家芬兰科技企业同成都本土企业展开深入交流和项目对接,成都的科技创新生态和投资环境给他们留下了良好印象,多家企业间已达成初步合作意向。

  • 研究揭示:ChatGPT不能让业余人员成为优秀的编程

    一项关于使用OpenAI的ChatGPT进行游戏编程的研究在网上引起了广泛关注。该研究通过生成FlappyBird游戏35次,试图验证AI是否能够让非程序员轻松创建复杂的游戏应用程序。AI在编程领域的应用仍然需要进一步的研究和改进,以使非程序员能够更轻松地创建复杂的程序。

  • 12306回强制买长乘短 将增开短途旅客

    铁路部门计划在9月27日至10月1日和10月4日至7日增开200列夜间高铁车票,并已开始陆续发售。这些夜间高铁的主要方向包括京沪、京哈、京广、沪昆、广深高铁等热门紧张区段。在长途票额充足时,会根据需求变化动态调整票额,满足短途旅客的需求。

  • iPhone 15 Pro系发货时间缩短:但依然供不

    摩根大通发布的一份报告显示,苹果iPhone15系列发货时间有明显缩短,但是市场依然供不应求。就全球市场交付时间言,iPhone15、iPhone15Plus交付时间为17天,iPhone15Pro交付时间缩短为29天,iPhone15ProMax交付时间缩短为46天。值得注意的是,iPhone15ProMax蓝色钛金属512GB国行版在苹果零售店现货销售,因这款配色没有受到果粉追捧,第三方渠道也已经破发,iPhone15、iPhone15Plus在第三方渠道均已破发。

  • 《命中注定我爱你》中的纪宝贝去世:拍戏的时候是1岁

    《命中注定我爱你》中的纪宝贝去世了,拍戏的时候1岁,今年16岁了。纪宝贝出自偶像剧《命中注定我爱你》,是一只马尔济斯犬,是男主角纪存希养的宠物狗,是存希和前女友的宝贝。一位观众表示,这是我曾经非常喜欢的一部剧,看了七八遍,剧中的内容让那时初入社会的我相信命中注定,现在想起来,这是青春的回忆和感动,笑中有泪。

  • hmo在奶粉中的作用?佳贝艾特悦护以科技之名守护新生

    《健康中国2030规划纲要》已进入全面实施阶段,提升母婴健康是建设“健康中国”的重要内容,开展母乳营养研究对于促进母婴健康具有重要意义。低聚糖是人类特有的一类未结合的、多功能的、结构多样的低聚糖,约占母乳总碳水化合物含量的20%,是仅次于乳糖和脂肪的第三大固体成分。在消费升级和精细化喂养的趋势下,佳贝艾特悦护羊奶粉作为一款高端羊奶粉产品,将羊奶原生营养与科学配方相结合,满足了越来越多母婴家庭对高营养、强守护的追求,更是帮助了越来越多宝宝健康茁壮地成长。

  • 伟景智能:人形机器人赛道中的“领跑者“

    人形机器人,大众对他的理解,往往还存在于科幻影片中,无论是《变形金刚》、《终结者》、《机械战警》等汇聚各种材料、各种类型的人形机器人火爆激战场面的电影是《人工智能》、《真实世界》、《铁甲钢拳》等将人形机器人赋予人类情感的影片,人形机器人都是科幻电影的主角,代表着未来各项尖端科技汇聚的最高成果。人形机器人被国际上视作衡量国家科技创新能力、高端制造业水平和产业竞争力的重要标志之一,被誉为“机器人皇冠上的明珠”。伟景智能将紧紧抓住这个跨时代的历史机遇,沉下心来认真打磨技术与产品,为梦想、为世界带来更多的关于人形机器人赛道的“iPhone时刻”!

  • 厉害了!AI破解维苏威火山灰中的古罗马卷轴

    古代文明的谜团又有了新的突破,一项名为“维苏威挑战”的研究项目取得了令人振奋的成就。一篇科技新闻报道了来自肯塔基大学的学者,他们通过人工智能成功解读了埋藏在维苏威火山灰下的古代卷轴,这些卷轴已经被掩埋了近2000年。这一突破将继续为考古学家和历史学家提供更多关于古代文明的见解。