redis提供了list类型,此类型底层是通过双向链表来实现:
> lpush、rpop 非阻塞式
> blpop、brpop 阻塞式
先来对比一下上面阻塞与非阻塞会有什么问题;
> 1.阻塞式:如果队列里面没有消息,会阻塞连接,长时间占用redis连接,需要考虑redis配置的超时以及redis会对空闲连接进行释放以减少资源浪费,需要对异常进行捕获重试;
> 2.非阻塞式:如果是1s主动去redis中拉取一次消息,也不太适合;
分类:
其他好文 时间:
2020-05-04 22:59:34
阅读次数:
72
排他锁: 介绍: 行级锁,锁住之后,其他人看不到该行信息,会陷入阻塞状态直到前面的用户commit或rollback之后才可操作。 使用场景: 例如转钱,一个客户给另一个客户转钱,然后需要两行内容都先上锁保证数据安全,再修改内容,修改完提交,另一个人再操作改行内容。 使用方式: select 字段 ...
分类:
数据库 时间:
2020-05-04 17:10:39
阅读次数:
66
实例要求:1) 编写一个 Netty 群聊系统, 实现服务器端和客户端之间的数据简单通讯(非阻塞)2) 实现多人群聊3) 服务器端: 可以监测用户上线, 离线, 并实现消息转发功能4) 客户端: 通过 channel 可以无阻塞发送消息给其它所有用户, 同时可以接受其它用户发送的消息(有服务器转发得 ...
分类:
Web程序 时间:
2020-05-04 00:58:50
阅读次数:
97
基本介绍 1) Java 的 NIO, 用非阻塞的 IO 方式。 可以用一个线程, 处理多个的客户端连接, 就会使用到 Selector(选择器)2) Selector 能够检测多个注册的通道上是否有事件发生(注意:多个 Channel 以事件的方式可以注册到同一个Selector), 如果有事件发 ...
分类:
其他好文 时间:
2020-05-04 00:41:47
阅读次数:
77
1.Java NIO 基本介绍 1) Java NIO 全称 java non-blocking IO, 是指 JDK 提供的新 API。 从 JDK1.4 开始, Java 提供了一系列改进的输入/输出的新特性, 被统称为 NIO(即 New IO), 是同步非阻塞的.2) NIO 相关类都被放在 ...
分类:
编程语言 时间:
2020-05-04 00:28:11
阅读次数:
65
先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数 async function timeout() { return 'hello world';} 语法 ...
分类:
其他好文 时间:
2020-05-03 18:55:21
阅读次数:
73
背景 因为想知道java中的关键字,对应的操作系统级别的api是啥,本来打算整理几个我知道的出来,但是,尴尬的是,我发现java里最重要的synchronized关键字,我就不知道它对应的api是什么。 redis中如何获取锁 在redis源码里,线程如果要进入一个同步区(只能单线程进入的代码块), ...
最近自己写了一个线程池。 总的来说,线程池就是有一个任务队列,一个线程队列,线程队列不断地去取任务队列中的任务来执行,当任务队列中为空时,线程阻塞等待新的任务添加过来。 我是用queue来存放任务,vector存放thread*,然后用condition_variable 来设置线程阻塞和唤醒。 下 ...
分类:
编程语言 时间:
2020-05-03 15:02:49
阅读次数:
314
显示锁的应用场景: 1.ReadWriteLock 读写分离:可以有效地减少锁竞争,以提升系统性能 2.中断锁,超时锁 Lock读写分离 读写分离简介: 1.读写锁:在同一时刻允许多个读线程访问,但是当写线程访问,所有的写线程和读线程均被阻塞。读写锁维护了一个读锁加一个写锁,通过读写锁分离的模式来保 ...
分类:
其他好文 时间:
2020-05-03 12:43:34
阅读次数:
70
一.核心重点 二.互动操作思路 1.前端向后端接口发起请求 2.后端接受请求,更加参数成功一个bat脚本,并用os命令执行他,利用redis中blpop或者brpop方法进行阻塞 `方法死的人是活的,这是我操作的方法,思路有了代码就简单了` ...
分类:
移动开发 时间:
2020-05-03 12:38:42
阅读次数:
209