摘要:
CountDownLatch用法 等待多个线程执行完才执行 CountDownLatch用法 等待多个线程执行完才执行 CountDownLatch用法 等待多个线程执行完才执行 CountDownLatch用法 等待多个线程执行完才执行 一.CountDownLatch用法 CountDownLa 阅读全文
摘要:
public void await() throws InterruptedException { }; //调用await()方法的线程会被挂起,它会等待直到count值为0才继续执行 public boolean await(long timeout, TimeUnit unit) throws 阅读全文
摘要:
测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。 阅读全文
摘要:
先抛出一个问题,如何解决互联网项目中的高并发问题? 1.网络层 2.服务器层面,常用的有nginx分流,负载均衡,负载权重。这些就是为了减轻单台服务器的压力。 3.业务划分 这才是高并发解决方案的重点,系统应该被细粒度地分割成多个模块,如天猫的购物车系统、结算系统等,在具体划分出来的系统上做负载均衡 阅读全文
摘要:
监听器实现的主要设计模式是观察者模式, 但一般实现的时候,往往会结合装饰者模式、职责链模式或者模板方法模式给监听器添加额外的灵活性和功能。 阅读全文
摘要:
JAVA NIO是同步非阻塞io。同步和异步说的是消息的通知机制,阻塞非阻塞说的是线程的状态 。下面说说我的理解,client和服务器建立了socket连接:1、同步阻塞io:client在调用read()方法时,stream里没有数据可读,线程停止向下执行,直至stream有数据。 阻塞:体现在这 阅读全文
摘要:
最近在学习java NIO,发现java nio selector 相对 channel ,buffer 这两个概念是比较难理解的 ,把学习理解的东西以文字的东西记录下来,就像从内存落地到硬盘,把内存中内容换成该知识点的索引。 在介绍Selector之前先明确以下3个问题: 1、selector的作 阅读全文
摘要:
为什么使用Selector? 仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通道。对于操作系统来说,线程之间上下文切换的开销很大,而且每个线程都要占用系统的一些资源(如内存)。因此,使用的线程越少越好。 但是,需要记住,现代的操作系统和 阅读全文
摘要:
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。 Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详 阅读全文
摘要:
要使用Selector,得向Selector注册Channel,然后调用它的select()方法。这个方法会一直阻塞到某个注册的通道有事件就绪。一旦这个方法返回,线程就可以处理这些事件,事件的例子有如新连接进来,数据接收等。 阅读全文