关闭

PHP实现队列及队列原理

8376人阅读 评论(2) 收藏 举报
分类:

队列是一种线性表,按照先进先出的原则进行的:
PHP实现队列原理看看各语言实现队列的方法:
各语言实现队列的方法PHP实现队列:第一个元素作为队头,最后一个元素作为队尾

  1. <?php /**  * 队列就是这么简单  *  * @link http://www.phpddt.com  */ $array =  array('PHP', 'JAVA');   array_push($array, 'PYTHON'); //入队列   array_shift($array); //出队列

什么是双端队列(或双向队列)Deque,全名double-ended queue?
即元素可以在队列的任意一段入队或出队,如果我们把这些方法叫做insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构。
PHP实现双端队列:
  1. <?php
  2. class Deque
  3. {
  4. public $queue = array();
  5. /**(尾部)入队 **/
  6. public function addLast($value)
  7. {
  8. return array_push($this->queue,$value);
  9. }
  10. /**(尾部)出队**/
  11. public function removeLast()
  12. {
  13. return array_pop($this->queue);
  14. }
  15. /**(头部)入队**/
  16. public function addFirst($value)
  17. {
  18. return array_unshift($this->queue,$value);
  19. }
  20. /**(头部)出队**/
  21. public function removeFirst()
  22. {
  23. return array_shift($this->queue);
  24. }
  25. /**清空队列**/
  26. public function makeEmpty()
  27. {
  28. unset($this->queue);
  29. }
  30. /**获取列头**/
  31. public function getFirst()
  32. {
  33. return reset($this->queue);
  34. }
  35.  
  36. /** 获取列尾 **/
  37. public function getLast()
  38. {
  39. return end($this->queue);
  40. }
  41.  
  42. /** 获取长度 **/
  43. public function getLength()
  44. {
  45. return count($this->queue);
  46. }
  47. }

队列的用途:

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

可用redis实现

1
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

PHP实现队列及队列原理

队列是一种线性表,按照先进先出的原则进行的: 看看各语言实现队列的方法: PHP实现队列:第一个元素作为队头,最后一个元素作为队尾 php/** * 队列就是这么简单 * * @link http...
  • woshihaiyong168
  • woshihaiyong168
  • 2016-10-18 09:48
  • 8376

PHP实现队列及队列原理

队列是一种线性表,按照先进先出的原则进行的: PHP实现队列:第一个元素作为队头,最后一个元素作为队尾 /** * 队列就是这么简单 * * @link */$array =  ...
  • yilovexing
  • yilovexing
  • 2016-11-10 17:38
  • 2634

PHP高级编程之消息队列

1. 什么是消息队列 消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式 2. 为什么使用消息队列 消息队列技术是分...
  • luyaran
  • luyaran
  • 2016-11-04 14:27
  • 11327

PHP实现双向队列

  • 2015-08-25 08:34
  • 1005B
  • 下载

PHP实现队列及队列原理

队列是一种线性表,按照先进先出的原则进行的: 看看各语言实现队列的方法: 看看各语言实现队列的方法: PHP实现队列:第一个元素作为队头,最后一个元素作为队尾 <?php /**  * 队列就是...
  • index_ling
  • index_ling
  • 2017-02-14 16:44
  • 662

rabbitmq 延迟队列的实现(PHP)http://blog.yuhai.win

参考文献: 1、https://wenku.baidu.com/view/0108202e3b3567ec102d8ab0.html 实现原理: 1、rabbitmq 可以针对 Queue...
  • u012119576
  • u012119576
  • 2017-07-07 14:09
  • 1359

使用 PHP 消息队列实现 Android 与 Web 通信

需求描述很简单:Android 发送数据到 Web 网页上。 系统: Ubuntu 14.04 + apache2 + php5 + Android 4.4 思路是 socket + 消息队列 + ...
  • u013802033
  • u013802033
  • 2015-05-09 22:00
  • 627

PHP使用数组实现堆栈和队列

堆栈和队列是数据结构的两种实现形式,是使用非常广泛的存储数据的容器。下面呢,就分别讲下这两种容器在PHP中的应用: 一、使用数组实现堆栈:、 1、堆栈容器中,最后进栈的将会被最先出栈,即所谓的“先...
  • joyksk
  • joyksk
  • 2017-06-20 11:59
  • 1506

PHP实现队列(Queue)数据结构

队列(Queue),是一种特殊的先进先出线性表,其只能在前端进行删除操作(一般称为出队),在后端进行插入操作(一般称为入队)。进行删除操作的端称为队头,进行插入操作的端称为队尾。队列,是按照先进先出或...
  • zqtsx
  • zqtsx
  • 2013-06-27 16:18
  • 3388

消息队列及PHP中的简单实现与应用

1. 关于消息队列 1.1 基础模式 一个基础的消息队列应该是这样的: 1.2 应用场景 消息队列的应用场景大概可以是以下几种: 冗余;解耦(比如业务系统和队列处...
  • zhanghao143lina
  • zhanghao143lina
  • 2017-12-23 10:27
  • 40
    个人资料
    • 访问:257443次
    • 积分:4050
    • 等级:
    • 排名:第8896名
    • 原创:148篇
    • 转载:119篇
    • 译文:1篇
    • 评论:47条
    最新评论