首页
关于
友情链接
Search
1
iAPPv5课程-实战:简易的引导页02
407 阅读
2
iAPPv5课程-实战:钱包页面设计01
277 阅读
3
iAPPv5课程-第一期:熟悉iAPP软件
273 阅读
4
Python第一周
263 阅读
5
iAPPv5课程-第二期-布局篇:线性布局
228 阅读
默认分类
学习笔记
后端开发
PHP
前端开发
软件推荐
全站超管系列教程
畅谈情感
登录
Search
标签搜索
java
openssl
知足常乐
累计撰写
10
篇文章
累计收到
14
条评论
首页
栏目
默认分类
学习笔记
后端开发
PHP
前端开发
软件推荐
全站超管系列教程
畅谈情感
页面
关于
友情链接
搜索到
1
篇与
PHP
的结果
2021-06-18
PHP队列的实现
前言最近想对接一个API,接口限制为每分钟可请求 300 次,考虑到后面量比较大,想到了可以使用队列来解决限制的问题,参考了网上的实现原理,写了一份实现代码给大家分享出来。实现代码<?php /** * PHP队列 * Class queue */ class queue { protected $front;//队头 protected $rear;//队尾 protected $queue = [ '0' => '队尾' ];//存储队列 protected $maxsize;//最大数 public function __construct($size) { $this->initQ($size); } //初始化队列 private function initQ($size) { $this->front = 0; $this->rear = 0; $this->maxsize = $size; } //判断队空 public function QIsEmpty() { return $this->front === $this->rear; } //判断队满 public function QIsFull() { return ($this->front - $this->rear) === $this->maxsize; } //获取队首数据 public function getFrontDate() { echo "当前队首:".$this->queue[$this->front]."<br>"; } //入队 public function InQ($data) { if ($this->QIsFull()) { echo $data . ":我一来咋就满了!(队满不能入队,请等待!)<br>"; } else { $this->front++; for ($i = $this->front; $i > $this->rear; $i--) { if ($this->queue[$i]) { unset($this->queue[$i]); } $this->queue[$i] = $this->queue[$i - 1]; } $this->queue[$this->rear + 1] = $data; echo $data . '入队成功!<br>'; } } //出队 public function OutQ() { if ($this->QIsEmpty()) { echo "队空不能出队!<br>"; } else { echo $this->queue[$this->front]."出队成功!<br>"; unset($this->queue[$this->front]); $this->front--; } } } $q = new queue(3); $q->InQ("小王"); $q->InQ('小明'); $q->InQ('小丽'); $q->getFrontDate(); $q->InQ('小赵'); $q->OutQ(); $q->InQ("小张"); $q->OutQ(); $q->OutQ(); $q->OutQ(); $q->OutQ();运行结果隐藏内容,请前往内页查看详情
2021年06月18日
185 阅读
1 评论
1 点赞