Wesley13 Wesley13
3年前
java多线程之“线程中断”的理解
什么时候要用到中断:  比如你开了生产者Producer和消费者Consumer两个线程,并用一个同步队列放置Porducer生产的和Consumer消费的产品。在Consumer中开启一个Producer线程,并且当Consumer不想消费时,可以随时结束掉Producer线程。如果不使用中断,可以使用一个booleancanc
Easter79 Easter79
3年前
Springboot+shiro+redis 限制同一账号 同时在多处登录
这里的业务场景,就类似与qq账号不能同时在多部手机登录一样,后者会强制前者下线,被强制下线的用户重新登录又挤掉前者,如此反复.....一.说下我的思路(不供参考)1\.利用Cookie里面的JESSIONID,其实也就是sessionid,是可以获取到的2.利用Deque双向队列,最大maxSize设置为13
Stella981 Stella981
3年前
RabbitMQ中 exchange、route、queue的关系
从AMQP协议可以看出,MessageQueue、Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件  从应用使用的角度全面的介绍如何利用RabbitMQ构建消息队列以及使用过程中的注意事项。!(https://oscimg.oschina.net/oscnet/d83279dd82e3776a60d9a8c
Stella981 Stella981
3年前
Kafka、RabbitMQ、RocketMQ、ActiveMQ 17 个方面综合对比
本文将从,Kafka、RabbitMQ、ZeroMQ、RocketMQ、ActiveMQ17个方面综合对比作为消息队列使用时的差异。(欢迎加入Java程序员群:630441304,一起学习交流会)一、资料文档Kafka:中。有kafka作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少
Easter79 Easter79
3年前
SynchronousQueue 介绍
SynchronousQueue是一种特殊的阻塞队列,不同于LinkedBlockingQueue(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fvickyqi.com%2F2015%2F11%2F23%2FJDK%25E5%25B9%25B6%25E5%258F%2591%25E5%2
Wesley13 Wesley13
3年前
Java 基础知识(七)
1.创建线程池1)newCacheThreadPool 创建一个可缓存的线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程 2)newFixedThreadPool  创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待 3)newScheduledThreadPool  创建一个定长线程池,支持
Stella981 Stella981
3年前
IntentService类 和 异步任务(AsyncTask)
IntentService是一个Service类。IntentService只有1个带String参数的构造方法,所以,在自定义类继承IntentService时,需要在自定义类中显式的调用IntentService带参数的构造方法,并且将自定义类的构造方法修改为无参数的。IntentService内部使用消息机制,利用消息队列的特性,可以依次处
Stella981 Stella981
3年前
LiteOS:盘点那些重要的数据结构
摘要:本文会给读者介绍下LiteOS源码中常用的几个数据结构,包括:双向循环链表LOS\_DL\_LIST,优先级队列PriorityQueue,排序链表SortLinkList等。在学习HuaweiLiteOS源代码的时候,常常会遇到一些数据结构的使用。如果没有掌握这它们的用法,阅读LiteOS源代码的时候会很费解、很吃力。本文会给读
Wesley13 Wesley13
3年前
(转)Java多线程
前言:   在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识Blockin
贾蔷 贾蔷
2星期前
洛谷P1168题终极解析:双堆法高效计算动态中位数 | 数据结构实战教程
一、问题理解与算法思路题目要求我们动态维护一个序列,并在每次读取奇数个数字时输出当前序列的中位数。这道题考察了两个核心算法点:堆数据结构的应用和中位数的高效计算。我们采用双堆法(一个大根堆和一个小根堆)来高效解决这个问题。‌解题关键步骤‌:使用大根堆存储较