搜索结果
查询Tags标签: 队列,共有 1737条记录-
redis队列
从最简单的开始:List 队列 首先,我们先从最简单的场景开始讲起。 如果你的业务需求足够简单,想把 Redis 当作队列来使用,肯定最先想到的就是使用 List 这个数据类型。 因为 List 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非…
2021/4/26 2:26:37 人评论 次浏览 -
redis学习笔记之队列,发布订阅,stream
前言 前面我们在redis学习笔记之基本5种数据结构中提到列表实现队列,我们今天就简单说下redis队列实现的几种方式。redis队列实现可以通过 基于List的 LPUSH+BRPOP 的实现, 基于Sorted-Set的实现,PUB/SUB(订阅/发布模式),stream,下面我们主要是说说list,发布订阅…
2021/4/26 2:25:28 人评论 次浏览 -
任务队列
一、线程池测试类TestTask运行时会启动多个缓存线程池,缓存线程池的数量根据服务器配置动态获取;二、优缺点优点:可异步,异步任务量较大,对于中型项目、产品,这样的异步处理机制是完全满足要求的; 缺点:由于任务执行者需要一直监测任务队列是否还有要执行的任务,…
2021/4/25 18:25:19 人评论 次浏览 -
rabbitMQ与activeMQ区别
之前的项目中都用到了这两个消息队列,因此总结一下它们的不同之处,做一个笔记,下次需要的时候再行参考。 概念 ActiveMq,传统的消息队列,使用Java语言编写。基于JMS(Java Message Service),采用多线程并发,资源消耗比较大。支持P2P和发布订阅两种模式,如果使用j…
2021/4/25 11:00:10 人评论 次浏览 -
39. 线程间通信
前面我们已经通过多个线程下载csv数据并转换为xml文件。在Python中由于全局解释器锁(GIL)的存在,多线程进行CPU密集型操作并不能提高执行效率,我们修改程序框架:使用多个DownloadThread线程进行下载(I/O);使用一个ConvertThread线程进行转换(CPU);下载线程把下…
2021/4/25 10:29:15 人评论 次浏览 -
Kafka与ActiveMQ的区别与联系详解
在大数据开发过程中我们经常会使用到消息队列类型的组件,比较常见的就是Kafka与ActiveMQ,但很多同学闹不懂两者的区别和联系,今天小千就来带大家分析一下。 一、背景分析 消息队列这个类型的组件一直是非常重要的组件,当经过两家企业后我就很坚信这个结论了…
2021/4/25 10:27:49 人评论 次浏览 -
BUAA-OO第二单元总结
一、同步块的设置和锁的选择 同步块的设置是保证线程安全性非常重要的一种方法。多个线程访问同一组共享资源时,设置同步块可以保证互斥访问,避免线程不安全导致的错误。 在本单元中: 我首先重点对总的等待队列Waitlist进行了同步块设置。第一次和第二次作业使用了Arra…
2021/4/24 18:56:03 人评论 次浏览 -
【小白学算法】3. 队列
一、什么是队列队列是一个有序列表,可以用数组或者链表来实现。遵循先入先出的原则,即:先存入队列的数据,要先取出。后存入的的数据,后取出。看一张队列的模拟图,1,2,3表示同一个队列Queue。在队列中有2个指针,front表示队首,rear表示队尾。图1中表示队列里还没…
2021/4/23 20:31:46 人评论 次浏览 -
【小白学算法】4. 循环队列
在上一章中,使用了数组模拟了队列。但是留下的问题是,把数据取完后,再往里加数据就不行了。一、假溢出这是因为数组的末尾已经被占用了,入队会继续在数组后面增加,于是产生数组越界。但是实际上,数组里是有空闲位置的,这种也可以叫“假溢出”。为了解决“假溢出”的…
2021/4/23 20:31:43 人评论 次浏览 -
redis实现分布式阻塞队列
1. Redis分布式锁实现原理分布式锁本质上要实现的目标就是在 Redis 里面占一个“茅坑”,当别的进程也要来占时,发现已经有人蹲在那里了,就只好放弃或者稍后再试。占坑一般是使用 setnx(set if not exists) 指令,只允许被一个客户端占坑。先来先占, 用完了,再调用 de…
2021/4/23 19:30:20 人评论 次浏览 -
Java-线程池面试题
目录前言什么是线程池为什么要使用线程池线程池有哪些作用线程池的创建方式如何实现复用ThreadPoolExecutor核心参数其他相关总结 前言 线程池在面试、开发过程中都比较重要。本文总结了一些关于该方面的相关知识点。 以下内容收集于 蚂蚁课堂 什么是线程池 线程池和数据库…
2021/4/23 14:27:05 人评论 次浏览 -
腾讯大佬把Redis进阶笔记分析的淋漓尽致!
一、Redis 基础数据结构 String Redis 里的字符串是动态字符串,会根据实际情况动态调整。类似于 Go 里面的切片-slice,如果长度不够则自动扩容。至于如何扩容,方法大致如下:当 length 小于 1M 的时候,扩容规则将目前的字符串翻倍;如果 length 大于 1M 的话,则每次只…
2021/4/22 19:25:34 人评论 次浏览 -
[数据结构]栈和队列的几个简单OJ(括号匹配问题,用队列实现栈,用栈实现队列,设计循环队列)
本文主要是几个OJ题的思路和代码(C实现) 包括:括号匹配问题,用队列实现栈,用栈实现队列,设计循环队列1.括号匹配问题题目:给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的…
2021/4/22 18:29:27 人评论 次浏览 -
面向对象第二单元总结
面向对象第二单元总结 前言 第二单元的内容对我们的要求从总体上说是掌握多线程的编程能力,实际化到三次作业之中便是利用多线程模拟实现一个电梯运行和调度的作业。在三次作业的迭代过程之中,就我个人而言,从对多线程的生疏不了解到三次作业结束后能够在一定程度上对多…
2021/4/22 18:28:11 人评论 次浏览 -
redis灵魂拷问:如何使用stream实现消息队列
redis在很早之前就支持消息队列了,使用的是PUB/SUB功能来实现的。PUB/SUB有一个缺点就是消息不能持久化,如果redis发生宕机,或者客户端发生网络断开,历史消息就丢失了。redis5.0开始引入了stream这个数据结构,stream可以很好地用于消息队列,它支持消息持久化,同时可…
2021/4/20 2:25:29 人评论 次浏览