摘要:
BIO BIO 是一种同步阻塞模式, 只要有一个客户端接入, 服务器就会有一条线程与之对应, 进行通信. 以前的一种常用做法是, 服务器端起一条线程, 进行监听, 当监听到客户端接入后, 新起一条线程, 专门与客户端进行通信. 如果线程不够用了, 就不能建立连接了. 客户端只能等待. 同步说的其实是 阅读全文
摘要:
disruptor 可以理解为一个生产消费的框架. 具体翻译教程: http://ifeve.com/disruptor-getting-started/ 这个框架从数据上看, 是很强大的. 号称1s处理600万数据(不是消费掉600万). 这里学习一下. 一. Hello World 数据容器: 阅读全文
摘要:
通过多线程实现一个简单的生产者-消费者案例(笔记). 首先定义一个要生产消费的数据类 : public class Data { private String id; private String name; public Data(String id, String name) { this.id 阅读全文
摘要:
多线程的 Master-Worker 从字面上也是可以理解的. Master 相当于领导, 一个就够了, 如果是多个, 那么听谁的, 是个大问题. Master负责指派任务给 Worker. 然后对每个人完成的情况进行汇总. Worker 相当于具体干活的人, 完成领导分配的任务, 然后把成果交给领 阅读全文
摘要:
单例创建实例, 网上有很多的例子, 我这里也只是做一下笔记. 可能并不比别人的详细. 主要是为了自己做点云笔记. 1. 饿汉式 public class Ehan { //1. 提供一个静态实例 private final static Ehan instance = new Ehan(); //2 阅读全文
摘要:
一. 测试代码 @RestController @RequestMapping("/book") public class BookController { @PostMapping("add") public JsonResponse<Integer> add(@Valid @RequestBod 阅读全文
摘要:
接第二篇 第二篇里面, 看到容器创建的是 AnnotationConfigServletWebServerApplicationContext 类型. 一 .类图 二. 构造 public GenericApplicationContext() { //创建 bean 工厂 this.beanFac 阅读全文
摘要:
接上一篇 一. getRunListeners() 在run() 方法中调用了 getRunListeners(args) 方法, 先看一下这个方法干了什么 private SpringApplicationRunListeners getRunListeners(String[] args) { 阅读全文
摘要:
接上一篇 在创建 SpringApplication 之后, 调用了 run() 方法. public ConfigurableApplicationContext run(String... args) { //定时器, 监控启动时间 StopWatch stopWatch = new StopW 阅读全文
摘要:
一. 测试代码 @SpringBootApplication public class SbmvcApplication { public static void main(String[] args) { SpringApplication.run(SbmvcApplication.class, 阅读全文