Executors提供的工厂方法有: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduled ...
分类:
编程语言 时间:
2020-04-24 15:59:26
阅读次数:
84
| 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough 现陆续将Demo代码和技术文章整理在一起 "Github实践精选" ,方便 ...
分类:
编程语言 时间:
2020-04-22 09:28:29
阅读次数:
76
1、基本概念 程序:代码,完成某一任务,代码序列(静态的概念) 进程:程序在某些数据上的一次运行(动态概念) 线程:一个进程可能包含一个或多个线程(占有资源的独立单元) 2、JVM与线程 JVM虚拟机在类被调用的时候启动 先启动JVM线程 其他线程(main线程) 3、JVM内存区域 方法区 主要存 ...
分类:
编程语言 时间:
2020-04-21 20:00:36
阅读次数:
86
本文重点讲解当线程池的任务过多时,如何去拒绝这些任务。 拒绝条件 1.线程已经shutdown了,需要拒绝 2.最大线程数或者队列已经满了,需要拒绝 拒绝策略 1.abortPolicy: 直接抛出异常 2.discardPolicy:任务丢弃,收不到通知 3.discardOldestPolicy ...
分类:
编程语言 时间:
2020-04-21 15:20:26
阅读次数:
109
我们经常听说过钩子方法,高级模块会用到,本文重点介绍下钩子方法及相关的代码演示。 ...
分类:
编程语言 时间:
2020-04-21 15:11:55
阅读次数:
110
本文介绍下Java中线程池的基本用法,基于此说明如何去确定线程池的大小。 线程池的创建方法 newFixedThreadPool 创建固定线程数的线程池,见下创建代码 /** * Creates a thread pool that reuses a fixed number of threads ...
分类:
编程语言 时间:
2020-04-21 13:34:00
阅读次数:
82
上篇博客介绍了线程池的创建的,本文重点介绍线程池应该如何关闭。 线程池停止的相关方法有:shutdown、 shutdown 关闭线程池的方法之一,调用线程池的此方法后,不再接受新的任务,待所有任务都执行关闭后,进行关闭 实例代码如下所示,不再接收新任务测试。 package threadPool; ...
分类:
编程语言 时间:
2020-04-21 13:13:36
阅读次数:
57
# 一面 1. RAII底层原理,使用Java实现2. TCP讲一下,泛洪攻击讲一下怎么避免,TCP keepalive了解吗?3. 数据库隔离级别,不同隔离级别的现象解释一下。4. 数据库的锁机制5. 悲观锁、乐观锁讲一下6. 自旋锁互斥锁,适用于什么场景,自旋锁底层实现7. TCP的RST了解吗... ...
分类:
编程语言 时间:
2020-04-21 12:45:59
阅读次数:
84
为什么要用线程池 随着处理器的核心越来越多,利用多线程技术可以把计算逻辑拆分成多个片段,分配到多个核心上,可以显著减少处理时间,提高效率;复杂的业务逻辑,可以使用多线程并发处理,缩短响应时间,提高用户体验。java的线程机制是抢占式协作多线程, 调用机制会周期性的中断线程,将上下文切换到另一个进程, ...
分类:
编程语言 时间:
2020-04-20 13:42:23
阅读次数:
70
工厂设计模式 Spring使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。 单例设计模式 在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池、缓存、对话框、注册表、日志对象、充当打印机、显卡等设备驱动程序的对象。事实上,这一类对 ...
分类:
编程语言 时间:
2020-04-19 14:42:52
阅读次数:
70