- 博客(14)
- 收藏
- 关注
转载 Java线程池大小的设置
一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数)如果是CPU密集型应用,则线程池大小设置为N+1如果是IO密集型应用,则线程池大小设置为2N+1如果一台服务器上只部署这一个应用并且只有这一个线程池,那么这种估算或许合理,具体还需自行测试验证。但是,IO优化中,这样的估算公式可能更适合:最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目因...
2018-05-31 16:31:48 4549 3
转载 浏览器中输入URL到返回页面的全过程
第一步,解析域名,找到主机IP(1)浏览器会缓存DNS一段时间,一般2-30分钟不等。如果有缓存,直接返回IP,否则下一步。(2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件。如果找到,直接返回IP,否则下一步。(在计算机本地目录etc下有一个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也可以修改hosts科学上网或破解软件。)(3)进行了(1)(2)本地查...
2018-05-25 11:45:43 463
转载 《Java.util.concurrent 包源码系列》:AbstractQueuedSynchronizer源码(3)
参考:https://javadoop.com/post/AbstractQueuedSynchronizer-2
2018-05-23 15:00:16 137
转载 索引的实现原理
这篇文章是介绍MySQL数据库中的索引是如何根据需求一步步演变最终成为B+树结构的以及针对B+树索引的查询,插入,删除,更新等操作的处理方法。Oracle和DB2数据库索引的实现基本上也是大同小异的。文章写得很通俗易懂,就转在这了。关于B+树和索引内部结构可以参考:《B 树、B- 树、B+ 树和B* 树》和《深入理解DB2索引(Index)》。00 – 背景知识- B-Tree & B+T...
2018-05-23 10:40:32 207
转载 《Java.util.concurrent 包源码系列》:AbstractQueuedSynchronizer源码(2)
线程抢锁很多人肯定开始嫌弃上面废话太多了,下面跟着代码走,我就不废话了。static final class FairSync extends Sync { private static final long serialVersionUID = -3000897897090466540L; // 争锁 final void lock() { acqui...
2018-05-20 20:44:40 150
转载 《Java.util.concurrent 包源码系列》:AbstractQueuedSynchronizer源码(1)
AQS 结构// 头结点,你直接把它当做 当前持有锁的线程 可能是最好理解的private transient volatile Node head;// 阻塞的尾节点,每个新的节点进来,都插入到最后,也就形成了一个隐视的链表private transient volatile Node tail;// 这个是最重要的,不过也是最简单的,代表当前锁的状态,0代表没有被占用,大于0代表有线程...
2018-05-20 20:21:14 176
转载 《Java.util.concurrent 包源码系列》:源码包结构
java5之后的java.util.concurrent包是世界级并发大师Doug Lea的作品.java.util.concurrent主要分为四个部分:第一部分 Aomic数据类型这部分都被放在java.util.concurrent.atomic这个包里面,实现了原子化操作的数据类型,包括 Boolean, Integer, Long, 和Referrence这四种类型以及这四种类型的数组类...
2018-05-14 15:43:13 1092
转载 Java多线程之七:用Lock、synchronized、阻塞队列三种方法实现生产者消费者模式
一、阻塞队列实现生产者消费者模式package com.lock.producerandconsumer;import java.util.Random;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;import java.util.logging.Lev...
2018-05-11 16:35:39 1099
转载 spring注解关键字
spring注解:(1)@Controller 控制器(2)@Autowired 按照类型匹配,可以完成对类成员变量,方法及构造函数进行标注,完成自动装配的工作 @Autowired(required=false) 在找不到匹配Bean时也不报错(3)@Qualifier 注释指定注入bean的名称,防止冲突,可以对成员变量、方法入参、构造函数入参进行标注(4)@Compone...
2018-05-10 10:51:04 1103
转载 Java-IO之管道(PipedInputStream和PipedOutputStream)
java中PipedInputStream和PipedOutputStream分别是管道输入流和管道输出流,它的作用是让多线程可以通过管道进行线程间的通讯,在使用管道通信时,必须将PipedInputStream和PipedOutputStream配套使用。大致的流程是:当在线程A中向PipedOutputStream中写入数据,会自动发送到与PipedOutputStream对应的PipedIn...
2018-05-09 17:59:54 344
转载 Java-IO之超类OutputStream
图中我们可以看出,以字节为单位的输出流的公共父类是OutputStream:从中我们可以看出,以字节为单位的输出流的公共父类是OutputStream:(1)OutputStream是以字节为单位的输出流的超类,提供了write()函数从输出流中读取字节数据。(2)ByteArrayOutputStream是字节数组输出流,写入ByteArrayOutputStream的数据被写入到一个byte数...
2018-05-09 16:24:31 238
转载 Java-IO之超类InputStream
InputStream是以字节为单位的输出流,通过以下框架图可以看到InputStream是所有以字节输入流类的公共父类:基于JDK8的InputStream类源码:package com.fengxiyuma.kuanjia;import java.io.Closeable;import java.io.IOException;public abstract class InputSt...
2018-05-09 14:49:38 218
转载 Java-IO之总框架
在Java IO中我们会经常提到输入流和输出流,流是一种抽象的数据总称,本质是能够进行数据的传输。按照流的方向分为:输入流和输出流。按照流中处理数据的单位,可以将其区分为:字节流和字符流。在Java中,字节就是1个Byte,8位,而字符是占2个Byte,16位,字节是有符号类型,字符是无符号类型的。接下来分别讨论输入流、输出流、字节流和字符流。一、以字节为单位的输入流的框架图:从上图我们可以看出以...
2018-05-09 14:35:56 260
转载 Java 集合系列(17):LinkedHashMap源码分析
转自:https://blog.csdn.net/caoxiaohong1005/article/details/799090831.特性分析说明:因为LinkedHashMap单词太长,所以以下都用LHM替代基本数据结构:数组+双向链表+红黑树因为继承HashMap,故常用属性和HashMap都一样。对于几个node指针的分析: HashMap中的Map.Entry:只有nextLinkedHa...
2018-05-08 10:18:03 160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人