通道 Coroutine\Channel 使用本地内存,不同的进程之间内存是隔离的。 只能在同一进程的不同协程内进行 push 和 pop 操作。 Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); Co\run(function(){ // 设置一个容量为1的通道 ...
分类:
其他好文 时间:
2020-07-12 19:10:33
阅读次数:
108
CSDN同步 前置知识: 简单 \(\text{dp}\),队列。 首先我们看一道题目:原题链接 简要题意: 给定一个长为 \(n\) 的数组,要求 不能选连续超过 \(m\) 个数,问选出数的最大值。 \(n \leq 10^5 , a_i \leq 10^9\). 注:本题将作为 作者讲解单调队 ...
分类:
其他好文 时间:
2020-07-12 18:38:29
阅读次数:
62
Algorithm: 225: Implement Stack using Queues (Easy) 232: Implement Queue using Stacks (Easy) 栈和队列互相表达虽然很简单,但是有多种办法,比如使用队列时的双队列、单队列、操作头部、操作尾部、peek优化等,最 ...
分类:
其他好文 时间:
2020-07-12 18:33:10
阅读次数:
50
Busy spin 是一种在不释放 CPU 的基础上等待事件的技术。它经常用于避免丢 失 CPU 缓存中的数据(如果线程先暂停,之后在其他 CPU 上运行就会丢失)。 所以,如果你的工作要求低延迟,并且你的线程目前没有任何顺序,这样你就可 以通过循环检测队列中的新消息来代替调用 sleep() 或 ...
分类:
其他好文 时间:
2020-07-12 15:05:26
阅读次数:
192
基本概念 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。 2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空 阻塞队列一共有7种 ...
分类:
其他好文 时间:
2020-07-12 14:21:06
阅读次数:
54
一个BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头的对象的延迟到期的时间最长。如果没有任何延迟到期,那么就不会有任何元素,并且poll将返回null ...
分类:
其他好文 时间:
2020-07-12 12:25:27
阅读次数:
59
Redis实现分布式锁与任务队列的思路,附上源代码 文章步骤很详细较长,阅读完需有5分钟~ 一、正文 大家都知道在天猫、京东、苏宁等等电商网站上有很多秒杀活动,例如在某一个时刻抢购一个原价1999现在秒杀价只要999的手机时,会迎来一个用户请求的高峰期,会有几十万几百万的并发量,来抢这个手机,在高并 ...
分类:
其他好文 时间:
2020-07-12 10:32:35
阅读次数:
65
今天学了一下第三章的查找:顺序查找,二分查找。和java工具类中算法的实现。 顺序查找就是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字相同的数为止。二分查找在查找前要对元素进行排序,然后确定中间位置,将待查的值与中间的值相比较,若不相等,则继续二分查找。 java工具类中算法的实现 ...
分类:
编程语言 时间:
2020-07-11 22:55:09
阅读次数:
65
DjangoRestFramework开发实践 在这之前我写过一篇关于Django与Drf快速开发实践的博客,Django快速开发实践:Drf框架和xadmin配置指北,粗略说了一下Drf配置和基本使用,不过里面只是涉及到最基本的CRUD,在正常的后端开发中涉及的诸如认证和权限、消息队列、缓存之类的 ...
分类:
其他好文 时间:
2020-07-11 22:47:55
阅读次数:
56
什么是消息队列? 就是生产者生产一条消息,发送到这个rabbitmq,消费者连接rabbitmq并且进行消费,生产者和消费者并需要知道对方是如何工作的,从而实现程序之间的解耦,异步和削峰,这也就是消息队列的作用。 使用的场景也有很多,比如用户支付购买之后的发送短信,增加用户积分等等,只要能将业务逻辑 ...
分类:
其他好文 时间:
2020-07-11 19:12:08
阅读次数:
80