- 博客(9)
- 资源 (7)
- 收藏
- 关注
转载 java线程池ThreadPoolExecutor源码解析
线程池中几个参数的作用和线程池大体的工作原理:一.线程池的构造方法ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...
2019-02-22 18:18:47 211
转载 线程执行 之 Executors工具类介绍
Executors是一个工具类,提供了大量的静态方法,方便我们在线程池中使用。 static Callable<Object> callable(Runnable task):将runnable接口实例转换成Callable接口实例.static ExecutorService newCacheThreadPool():创建一个“按需创建”的线程池,此前创建的线程可用时将重用它们。...
2019-02-22 17:40:38 324
原创 线程执行 之 ExecutorService.submit()方法执行内部逻辑解析 ThreadPoolExecutor
futureTask 继承了Runable 接口,所以本身就是一个线程,内部实现了run方法,当主线程使用ExecutorService.submit ()方法提交任务或者使用 futureTask.start() 启动子线程的时候,开始执行futuretask的run 方法,run 方法内部 调用了 Callable 接口的call方法 ,然后这个线程慢慢执行的过程中, 主线程执行完其他操作,调...
2019-02-22 17:18:33 2248
原创 线程执行 之FutureTask 原理 (线程通知)
先看一个例子 static class Task implements Callable<Integer> { @Override public Integer call() throws Exception { System.out.println("子线程在进行计算"); Thread.s...
2019-02-22 16:17:07 553 2
原创 java 文件操作 之遍历项目包内文件并过滤出class文件生成class 对象
public class ClassScanner{ private Map<String, Class<?>> classes = new HashMap<String, Class<?>>(); private FilenameFilter javaClassFilter; ...
2019-02-20 16:39:04 358
原创 jvm 类加载机制 之线程上下文类加载器在spi 中的应用 (4)
线程上下文类加载器(context class loader)是从JDK 1.2开始引入的。类 java.lang.Thread中的方法getContextClassLoader()和setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。如果没有通过 setContextClassLoader(ClassLoader cl)方法进行设置的...
2019-02-20 15:51:59 1025
原创 java spi service provider interface
Java提供的Service Provider机制其实就是一种DI,在实现时只考虑接口(也就是规范),由其他第三方去实现具体的功能。这个跟Spring的依赖注入概念上差不多,Spring是框架级别的依赖注入,SPI则是语言自身提供的,不依赖于任何框架。具体使用方法非常简单,假设系统中实现一个接口,例如com.test.DemoInterface,由第三方提供具体实现,有以下步骤:1....
2019-02-20 14:57:16 144
原创 java jdbc接口是基于spi机制设计的
传统的使用jdbc来访问数据库的流程为:Class.forName(“com.mysql.jdbc.Driver”);String url = “jdbc:mysql://localhost:3306/test?user=root&password=123456″;Connection con = DriverManager.getConnection(url);Statement...
2019-02-20 14:41:04 527
原创 jvm的堆内存 之新生代、老年代、永久代关系(jdk7)
新生代分为三个区域,一个Eden区和两个Survivor区,它们之间的比例为(8:1:1),这个比例也是可以修改的。通常情况下,对象主要分配在新生代的Eden区上,少数情况下也可能会直接分配在老年代中。Java虚拟机每次使用新生代中的Eden和其中一块Survivor(From),在经过一次Minor GC后,将Eden和Survivor中还存活的对象一次性地复制到另一块Survivor空间上(这...
2019-02-01 11:53:57 2270
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人