狐言不胡言

导航

2021年4月17日 #

网络编程之BIO和NIO

摘要: (网络编程) OSI网络七层模型 为了使不同的计算机厂家的计算机可以相互通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。国际标准化组织ISO推荐了一个网络系统结构 七层参考模型。 每层的主要功能: TCP/UDP协议 TCP协议(传输控制层协议),是Internet 阅读全文

posted @ 2021-04-17 09:45 狐言不胡言 阅读(156) 评论(0) 推荐(0) 编辑

ForkJoinPool的工作原理和使用

摘要: 场景:当任务很多,成千上万个,或者单个任务很大,执行起来很耗时间,这时,就可以把任务进行拆分,拆分成多个小任务去执行,然后小任务执行完毕后再把每个小任务执行的结果合并起来,这样就可以节省时间。 ForkJoinPool实现了ExecutorService接口,所以它也是一种线程池,做的工作就是,把一 阅读全文

posted @ 2021-04-17 09:31 狐言不胡言 阅读(1989) 评论(0) 推荐(0) 编辑

Queue API的几种实现详解

摘要: (Queue API详解) Queue API的几种方法的使用 方法名称 作用 描述 add 添加元素到队列 如果队列满了就抛异常java.lang.IllegalStateException remove 移除并且返回队列头部元素 如果队列为null,就抛异常java.util.NoSuchEle 阅读全文

posted @ 2021-04-17 09:30 狐言不胡言 阅读(419) 评论(0) 推荐(0) 编辑

HashSet、CopyOnWriteArraySet、ConcurrentSkipListSet源码解析(JDK1.8)

摘要: (set源码解析) HashSet源码解析 HashSet简单使用的demo public static void main(String[] args) { Set<String> set = new HashSet<>(); set.add("中国"); set.add("你好"); set.a 阅读全文

posted @ 2021-04-17 09:26 狐言不胡言 阅读(157) 评论(0) 推荐(0) 编辑

ArrayList、CopyOnWriteArrayList源码解析(JDK1.8)

摘要: 本篇文章主要是学习后的知识记录,存在不足,或许不够深入,还请谅解。 ArrayList源码解析 ArrayList中的变量 通过上图可以看到,ArrayList中总共有7个变量,下面看下每个变量的作用: /** * 序列化 */ private static final long serialVer 阅读全文

posted @ 2021-04-17 09:25 狐言不胡言 阅读(70) 评论(0) 推荐(0) 编辑

HashMap、ConcurrentHashMap 1.7和1.8对比

摘要: 本篇内容是学习的记录,可能会有所不足。 一:JDK1.7中的HashMap JDK1.7的hashMap是由数组 + 链表组成 /** 1 << 4,表示1,左移4位,变成10000,即16,以二进制形式运行,效率更高 * 默认的hashMap数组长度 * The default initial c 阅读全文

posted @ 2021-04-17 09:23 狐言不胡言 阅读(399) 评论(0) 推荐(0) 编辑

2021年4月16日 #

多线程之Lock接口

摘要: 之前写了一下synchronized关键字的一点东西,那么除了synchronized可以加锁外,JUC(java.util.concurrent)提供的Lock接口也可以实现加锁解锁的功能。 看完本文,希望您可以了解或者掌握: 1:Lock接口的实现 2:Condition的原理和概念 3:Ree 阅读全文

posted @ 2021-04-16 15:42 狐言不胡言 阅读(95) 评论(0) 推荐(0) 编辑

synchronized锁由浅入深解析

摘要: 一:几种锁的概念 1.1 自旋锁 自旋锁,当一个线程去获取锁时,如果发现锁已经被其他线程获取,就一直循环等待,然后不断的判断是否能够获取到锁,一直到获取到锁后才会退出循环。 1.2 乐观锁 乐观锁,是假设不会发生冲突,当去修改值的时候才判断是否和自己获得的值是一样的(CAS的实现,值也可以是版本号) 阅读全文

posted @ 2021-04-16 15:27 狐言不胡言 阅读(376) 评论(0) 推荐(0) 编辑

获取线程的执行结果

摘要: 一:Runnable和Callable的区别 最本质的区别在于,Runnable没有返回结果,Callable会有一个返回结果,返回结果是泛型,可以自己定义。举例子说明: public class ThreadRunnable { public static void main(String[] a 阅读全文

posted @ 2021-04-16 15:25 狐言不胡言 阅读(116) 评论(0) 推荐(0) 编辑

线程stop和Interrupt

摘要: 一:stop终止线程 举例子: public class ThreadStop { public static int i; public static int j; public static void main(String[] args) throws InterruptedException 阅读全文

posted @ 2021-04-16 15:17 狐言不胡言 阅读(179) 评论(0) 推荐(0) 编辑