/**
* Created by PhpStorm.
* User: LAMP—Q哥
* Date: 2017/8/3
* Time: 12:58
*/
class Queue {
private $_queue = [];
protected $cache = null;
protected $queuecachename; /**
* 构造方法
* Queue constructor.
* @param $queuename
*/
public function __construct($queuename ) {
$this->cache = & Cache::instance();
$this->queuecachename = 'queue_'.$queuename;
$result = $this->cache->get($this->queuecachename);
if(is_array($result)) {
$this->_queue = $result;
}
} /**
* 将一个单元放入队列末尾
* @param $value
* @return $this
*/
public function enQueue($value) {
$this->_queue[]=$value;
$this->cache->set($this->queuecachename,$this->_queue);
return $this;
} /**
* 将队列开头的一个或多个单元移除
* @param int $num
* @return array
*/
public function sliceQueue($num = 1) {
if(count($this->_queue)<$num) {
$num = count($this->_queue);
}
$output = array_slice($this->_queue,0,$num);
$this->cache->set($this->queuecachename,$this->_queue);
return $output;
} /**
* 将队列开头的单元移出队列
* @return mixed
*/
public function deQueue() {
$entry = array_shift($this->_queue);
$this->cache->set($this->queuecachename,$this->_queue);
return $entry;
} /**
* 获取队列的长度
* @return int
*/
public function size() {
return count($this->_queue);
} /**
* 获取队列中的第一个
* @return mixed
*/
public function peek() {
return $this->_queue[0];
} /**
* 返回队列中的一个或者多个单元
* @param $num
* @return array
*/
public function peeks($num){
if(count($this->_queue)<$num) {
$num = count($this->_queue);
}
return array_slice($this->_queue,0,$num);
} /**
* 销毁队列
*/
public function destroy() {
$this->cache->remove($this->queuecachename);
} }

PHP队列类的更多相关文章

  1. 10 DelayQueue 延时队列类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 www.cnblogs.com/oloroso/ 本文由乌合 ...

  2. phpMemcache消息队列类

    <?php /** * Memcache 消息队列类 */ class QMC { const PREFIX = 'ASDFASDFFWQKE'; /** * 初始化 mc * @staticv ...

  3. C++学习笔记50:队列类模板

    队列是只能向一端添加元素,从另一端删除元素的线性群体 循环队列 在想象中将数组弯曲成环形,元素出队时,后继元素不移动,每当队尾达到数组最后一个元素时,便再回到数组开头. 队列类模板 //Queue.h ...

  4. WorldWind源码剖析系列:下载队列类DownloadQueue

    下载队列类DownloadQueue代表具有优先级的下载队列,该类的存储下载请求的数组链表专门按一定的优先级来存储下载请求的.该类的类图如下. 下载队列类DownloadQueue各个字段的含义说明如 ...

  5. 固定尺寸内存块的缓冲队列类及C++实现源代码

    -------------------------------------------------------------------------------- 标题: 固定尺寸内存块的缓冲队列类及实 ...

  6. 一个队列类的实现(比delphi自带的速度快70倍)(线程安全版本)

    unit sfContnrs; interface {$DEFINE MULTI_THREAD_QUEUE} //线程安全版本,如果不需要线程安全,请注释掉此行代码 {$IFDEF MULTI_THR ...

  7. python queue - 同步队列类

    参考 官网 queue 模块 queue 模块实现多生产者,多消费者队列. 当必须在 ==多个线程之间安全地交换信息== 时,它在线程编程中特别有用. 此模块中的Queue类实现了所有必需的锁定语义. ...

  8. Python3 queue队列类

    class queue.PriorityQueue(maxsize=0) 优先级队列构造函数. maxsize 是个整数,用于设置可以放入队列中的项目数的上限.当达到这个大小的时候,插入操作将阻塞至队 ...

  9. perl自定义简易的面向对象的栈与队列类

    perl中的数组其实已经具备了栈与队列的特点,下面是对数组经过一些封装的stack,queue对象 1.Stack类 创建一个Stack.pm文件 package Stack; sub new{ $s ...

  10. 原创:Javascript循环队列类

    需要滚动显示最多一定数量的信息,于弄了个这个 var LeesCircleQueue=function(size) { // 队列数组 var _queue=[]; // 队首索引 var _fron ...

随机推荐

  1. 05-4-style的代替操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 同名的cookie会不会存在多个

    cookie new了多个.同一个名字.会不会存在多个呢. //若果不设置Cookie的path,则名字相同的Cookie视为相同的Cookie,后面的覆盖前面的,注意:大小写敏感 Cookie c1 ...

  3. java填坑记录

    一.The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the ...

  4. 转:Linux--进程间通信(信号量,共享内存)

    源地址:http://www.cnblogs.com/forstudy/archive/2012/03/26/2413724.html Linux--进程间通信(信号量,共享内存)(转)   一. 信 ...

  5. java mat复制问题

    意外的发现 org.opencv.core.Mat projectionMat = mat ;//曲线救国,获取同样一个mat projectionMat.setTo());//然后再把颜色换成白色 ...

  6. javascript date utc

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/huangbin10025/article/details/37503465 近期在使用highsto ...

  7. lumen使用CORS解决跨域问题

    因为公司的业务是前后端分离,web前端和后端接口域名不同,所以存在跨域问题,开始使用的是jsonp解决,但是因为接口风格是rest的,还有delete.put等请求,jsonp就不够用了(涉及HTTP ...

  8. JavaScript内容梳理 示例之模态对话框 示例之全选和反选以及取消 示例之后台管理左侧菜单

    <!DOCTYPE html> <!--示例之模态对话框--> <html lang="en"> <head> <meta c ...

  9. js &&操作符解析

    转载自:http://www.cnblogs.com/huchaoheng/p/4066473.html 前几天看到一个函数,百思不得其解,今天早上醒来看了本js的书,正好讲到操作符的用法,给大家分享 ...

  10. 组合数学起步-排队[HNOI2012][BZOJ2729]

    <题面> 这个题十分基础 写这个博客给自己看的呵呵 遇到这个题,一看就是组合数学, so,开始推公式, 刚开始想的是,先排男生,再排女生,最后排老师 推了一会,呃呃呃,情况复杂,考虑的好像 ...