09 2018 档案

摘要:一、线程池执行任务的流程 如果线程池工作线程数<corePoolSize,创建新线程执行task,并不断轮训t等待队列处理task。 如果线程池工作线程数>=corePoolSize并且等待队列未满,将task插入等待队列。 如果线程池工作流程数>=corePoolSize并且等待队列已满,且工作线 阅读全文
posted @ 2018-09-26 18:22 两条闲鱼 阅读(8692) 评论(0) 推荐(1)
摘要:Java Thread是不允许异常抛出到本线程之外的,Runnable接口的public abstract void run()是不允许throws Exception的,这在编译时就通不过。 线程异常处理方式两种: Thread.UncaughtExceptionHanlder 在创建线程的时候进 阅读全文
posted @ 2018-09-19 19:19 两条闲鱼 阅读(1335) 评论(0) 推荐(0)
摘要:1. Client Hello 握手第一步是客户端向服务端发送 Client Hello 消息,这个消息里包含了一个客户端生成的随机数 Random1、客户端支持的加密套件(Support Ciphers)和 SSL Version 等信息。 2. Server Hello第二步是服务端向客户端发送 阅读全文
posted @ 2018-09-19 16:09 两条闲鱼 阅读(1213) 评论(0) 推荐(0)
摘要:每个java线程都有一个Parker实例,Parker类是这样定义的: 可以看到Parker类实际上用Posix的mutex,condition来实现的。 在Parker类里的_counter字段,就是用来记录所谓的“许可”的。 当调用park时,先尝试直接能否直接拿到“许可”,即_counter> 阅读全文
posted @ 2018-09-18 18:40 两条闲鱼 阅读(474) 评论(0) 推荐(0)
摘要:JAVA对象内存结构 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 对象头 markWord 用于存储对象自身的运行时数据, 如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持 阅读全文
posted @ 2018-09-18 10:47 两条闲鱼 阅读(1662) 评论(0) 推荐(0)
摘要:Thread类中State枚举定义: sleep(long) 测试i类: 运行结果: join() 测试代码: 运行结果: wait() 测试代码: 运行结果: 阅读全文
posted @ 2018-09-17 17:16 两条闲鱼 阅读(182) 评论(0) 推荐(0)