PHP队列类
/**
* 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队列类的更多相关文章
- 10 DelayQueue 延时队列类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 www.cnblogs.com/oloroso/ 本文由乌合 ...
- phpMemcache消息队列类
<?php /** * Memcache 消息队列类 */ class QMC { const PREFIX = 'ASDFASDFFWQKE'; /** * 初始化 mc * @staticv ...
- C++学习笔记50:队列类模板
队列是只能向一端添加元素,从另一端删除元素的线性群体 循环队列 在想象中将数组弯曲成环形,元素出队时,后继元素不移动,每当队尾达到数组最后一个元素时,便再回到数组开头. 队列类模板 //Queue.h ...
- WorldWind源码剖析系列:下载队列类DownloadQueue
下载队列类DownloadQueue代表具有优先级的下载队列,该类的存储下载请求的数组链表专门按一定的优先级来存储下载请求的.该类的类图如下. 下载队列类DownloadQueue各个字段的含义说明如 ...
- 固定尺寸内存块的缓冲队列类及C++实现源代码
-------------------------------------------------------------------------------- 标题: 固定尺寸内存块的缓冲队列类及实 ...
- 一个队列类的实现(比delphi自带的速度快70倍)(线程安全版本)
unit sfContnrs; interface {$DEFINE MULTI_THREAD_QUEUE} //线程安全版本,如果不需要线程安全,请注释掉此行代码 {$IFDEF MULTI_THR ...
- python queue - 同步队列类
参考 官网 queue 模块 queue 模块实现多生产者,多消费者队列. 当必须在 ==多个线程之间安全地交换信息== 时,它在线程编程中特别有用. 此模块中的Queue类实现了所有必需的锁定语义. ...
- Python3 queue队列类
class queue.PriorityQueue(maxsize=0) 优先级队列构造函数. maxsize 是个整数,用于设置可以放入队列中的项目数的上限.当达到这个大小的时候,插入操作将阻塞至队 ...
- perl自定义简易的面向对象的栈与队列类
perl中的数组其实已经具备了栈与队列的特点,下面是对数组经过一些封装的stack,queue对象 1.Stack类 创建一个Stack.pm文件 package Stack; sub new{ $s ...
- 原创:Javascript循环队列类
需要滚动显示最多一定数量的信息,于弄了个这个 var LeesCircleQueue=function(size) { // 队列数组 var _queue=[]; // 队首索引 var _fron ...
随机推荐
- linux下mysql导入导出sql文件
使用mysqldump导出数据库: # mysqldump -u root -p gzy > gzy.sql # mysqldump -u 数据库连接用户名 -p 目标数据库 > 存储的文 ...
- Windows API 第四篇 文件操作
创建或打开文件(也可用于打开管道,油槽,硬件设备等): HANDLE CreateFile( LPCTSTR lpFileName, // file name DWORD dwDesiredAcces ...
- (补充)10.Hibernate框架的查询方式
技术分析之Hibernate框架的查询方式 1. 唯一标识OID的检索方式 * session.get(对象.class,OID) 2. 对象的导航的方式 3. HQL的检索方式 * Hibernat ...
- vue 生产环境和测试环境的配置
我们引用的是axios 给src目录增加 api 文件夹 里面写上index.js // 配置API接口地址 var root = process.env.API_ROOT // 引用axios va ...
- Django中间件初始化过程
def load_middleware(self): """ Populate middleware lists from settings.MIDDLEWARE. Mu ...
- mysql基础教程(一)-----概述、安装、查询
概述 好处 •实现数据持久化 •使用完整的管理系统统一管理,易于查询 概念 DB 数据库(database):存储数据的“仓库”.它保存了一系列有组织的数据. DBMS 数据库管理系统(Databas ...
- Delphi代码规范
1. 前言 本文档主要是为Delphi开发人员提供一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致格式可遵循.这样,每个编程人员编写的代码能够被其他人理解. 2. 源程序书写规范 2 ...
- oracle数据库忘记sys密码如何改密码
ORACLE服务器操作: 1.win+R打开dos窗口cmd 2.输入 sqlplus/nolog出现 3.输入 conn / as sysdba 出现 4. alter user sys ident ...
- 卷积神经网络中的通道 channel
卷积神经网络中 channels 分为三种: (1):最初输入的图片样本的 channels ,取决于图片类型,比如RGB, channels=3 (2):卷积操作完成后输出的 out_c ...
- MySQL与Oracle差异函数对比
ORACLE:select round(1.23456,4) value from dual MYSQL:select round(1.23456,4) value 2 abs(-1) abs(-1) ...