shutdown、shutdownNow、awaitTermination

1、shutdown()问:shutdown()有什么功能?答:阻止新来的任务提交,对已经提交了的任务不会产生任何影响。当已经提交的任务执行完后,它会将那些闲置的线程(idleWorks)进行中断,这个过程是异步的。问:如何阻止新来的任务提交?答:通过将线程池的状态改成SHUTDOWN,当再将执行execute提交任务时,如果测试到状态不为RUNNING,则抛出rejectedExecution,

- 阅读全文 -

Java 多线程三大核心

原子性Java 的原子性就和数据库事务的原子性差不多,一个操作中要么全部执行成功或者失败。JMM 只是保证了基本的原子性,但类似于 i++ 之类的操作,看似是原子操作,其实里面涉及到:获取 i 的值。自增。再赋值给 i。这三步操作,所以想要实现 i++ 这样的原子操作就需要用到 synchronized 或者是 lock 进行加锁处理。如果是基础类的自增操作可以使用 AtomicInteger 这

- 阅读全文 -

Netty和Tomcat的区别、性能对比

一、Netty和Tomcat有什么区别? Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他的实质是一个基于http协议的web容器,但是Netty不一样,他能通过编程自定义各种协议,因为netty能够通过codec自己来编码/解码字节流,完成类似redis访问的功能,这就是netty和tomcat最大的不同。有人说netty的性能就一定比tomcat性能高,其

- 阅读全文 -

使用Netty实现HTTP服务器

Netty是一个异步事件驱动的网络应用程序框架用于快速开发可维护的高性能协议服务器和客户端。Netty经过精心设计,具有丰富的协议,如FTP,SMTP,HTTP以及各种二进制和基于文本的传统协议。Java程序员在开发web应用的时候,截止2018年大多数公司采用的还是servlet规范的那一套来开发的,比如springmvc。虽然在2018年Java程序员们可以选择使用spring5中的webfl

- 阅读全文 -

Netty 入门初体验

前言这篇主要介绍一个Netty 客户端与服务端的示例代码,对Netty有一个直观感受,看看如何使用Netty,后续文章会对Netty的各个组件进行详细分析Netty简介Netty是一款异步的事件驱动的网络应用程序框架,支持快速开发可维护的高性能的面向协议的服务器和客户端。Netty主要是对java 的 nio包进行的封装为什么要使用 Netty上面介绍到 Netty是一款 高性能的网络通讯框架,那

- 阅读全文 -

ServerSocket实现超简单HTTP服务器

1、相关知识简介HTTP协议HTTP是常用的应用层协议之一,是面向文本的协议。HTTP报文传输基于TCP协议,TCP协议包含头部与数据部分,而HTTP则是包含在TCP协议的数据部分,如下图HTTP报文本质上是一个TCP报文,数据部分携带的内容为HTTP报文,HTTP报文多数情况下是一串文本,当然也可能携带二进制信息。HTTP报文HTTP报文包含头部和请求体,请求体内容可为空。请求头与请求体用单独的

- 阅读全文 -

Java并发面试题

多线程java中有几种方法可以实现一个线程?继承Thread类;实现Runnable接口;实现Callable接口通过FutureTask包装器来创建Thread线程;使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来管理前面的三种方式)。详情参见:https://radiancel.github.io/2018/

- 阅读全文 -

面试必会之HashMap源码分析

面试必会之ArrayList源码分析面试必会之LinkedList源码分析简介HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,是非线程安全类,在多线程环境下可能会存在问题。1.8版本的HashMap数据结构:为什么有的是链表有的是红黑树?默认链表长度大于8时转为树结构Node是HhaspMap中的一个静态内部类 : 1 //Node

- 阅读全文 -

28个Java开发常用规范技巧总结

1、类的命名使用驼峰式命名的规范。例如:UserService,但是以下情景例外:DO / BO / PO / DTO / VO。例如说:UserPO,StudentPO(PO,VO,DTO,等这类名词需要全大写)@Data @Builder public class CustomBodyDTO { private String name; private String idC

- 阅读全文 -