提出了问题2019-12-30
提出了问题2019-12-25
关注了问题2019-12-23
提出了问题2019-12-23
提出了问题2019-12-11
赞了回答2019-11-26
因为那个锁,包括wait set这些东西都是属于对象的 (intrinsic lock)
提出了问题2019-11-26
提出了问题2019-11-14
提出了问题2019-11-14
赞了回答2019-11-04
EventLoop之所以称之为EventLoop,就是因为EventLoop需要循环的监听IO事件,任何耗时的逻辑都有可能导致IO事件不能被灵敏的响应,所以第二种方案是不可取的,虽然说Netty应用程序的一般准则是,尽可能的重用EventLoop,以减少线程创建带来的开销,但是前提是不能影响...
发布了文章2019-09-21
Java 1.5开始, 提供了 Callable 和 Future, 通过它们可以在任务执行完毕之后得到任务执行结果. 当需要调用几个执行很慢的方法时, 可以使用多线程一起执行这几个方法, 等所有方法执行完毕后得到执行结果, 在进行别的处理. Future 的主要方法 Future 接口主要包括 5 个...
赞了文章2019-09-20
看到一篇不错的文章,特意转载过来,原文地址:长连接、短连接、长轮询、短轮询、WebSocket 一、短连接和长连接 短连接:每次Http请求都会建立Tcp连接,管理容易 长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难 HTTP1.1规定了默认保持长...
发布了文章2019-09-19
Java 虚拟机规范试图定义一种 Java 内存模型 (JMM), 来屏蔽掉各种硬件和操作系统的内存访问差异, 让 Java 程序在各种平台上都能达到一致的内存访问效果.
发布了文章2019-09-18
例如硬盘操作, 磁盘控制器通过 DMA 直接将数据写入内核的内存缓冲区. 一旦磁盘控制器完成了缓存的填写, 内核从内核空间的临时缓存拷贝数据到用户控件缓存中.
赞了回答2019-08-27
队列的话,其实就是个链表结构A->B->C->D->F类似这样,要判断某个元素是否存在,肯定要遍历。如果有这个需求的话,那list不适合,set比较合适。
发布了文章2019-08-15
AOF 持久化方式则会记录每一个服务器收到的写操作. 在服务启动时, 这些记录的操作会逐条执行从而重建出原来的数据. 写操作命令记录的格式跟 Redis 协议一致, 以追加的方式进行保存.
发布了文章2019-08-13
首先让我们看一个非常简单的例子. 假设要定义搜索请求消息格式, 其中每个搜索请求都有一个查询字符串, 您感兴趣的特定结果页面以及每页的一些结果. 这是用于定义消息类型的 .proto 文件.
发布了文章2019-08-12
Redis 为这样的用户场景提供了 lua 脚本支持, 用户可以向服务器发送 lua 脚本来执行自定义动作, 获取脚本的响应数据. Redis 服务器会单线程原子性执行 lua 脚本, 保证 lua 脚本在处理的过程中不会被任意其它请求打断.
发布了文章2019-08-08
列表对象的编码可以是 ziplist(压缩列表) 或者 linkedlist(双端列表). 每个链表节点使用一个 listNode 结构来表示: {代码...} 多个 listNode 可以通过 prev 和 next 指针组成双端无环链表: 虽然仅仅使用多个 listNode 结构就可以组成链表, 但使用 list 来持有链表的...
发布了文章2019-08-07
如果一个字符串对象保存的是整数值, 并且这个整数值可以用 long 类型来表示, 那么字符串对象会将整数值保存在字符串对象结构的 ptr 属性里面 (将 void* 转换成 long), 并将字符串对象的编码设置为 int.