java 多线程实现源码解析

  转发自:https://blog.csdn.net/hzw19920329/article/details/52372348 最近在看java线程池实现方面的源码,在此做个小结,因为网上关于线程池源码分析的博客挺多的,我也不打算重复造轮子啦,仅仅用纯语言描述的方式做做总结啦!       ...

2018-08-27 16:33:18

阅读数 369

评论数 0

JUC源码解析----- 线程池之 FutureTask类

1、FutureTask 概念 FutureTask一个可取消的异步计算,FutureTask 实现了Future的基本方法,提供了 start () 、cancel()操作,可以查询计算是否已经完成,并且可以获取计算的结果。结果只可以在计算完成之后获取,get方法会阻塞当计算没有完成的时候,一...

2018-08-20 14:25:25

阅读数 61

评论数 0

JUC源码解析(1)---- ThreadPoolExecutor 实现原理、submit()实现

通过ExecutorService.submit()方法提交的任务,可以获取任务执行完的返回值。 在实际业务场景中,Future和Callable基本是成对出现的,Callable负责产生结果,Future负责获取结果。 1、Callable接口类似于Runnable,只是Runnable没有返...

2018-08-20 14:02:13

阅读数 72

评论数 0

JUC源码解析(5)----线程池之 newScheduledThreadPool()

初始化的线程池可以在指定的时间内周期性的执行所提交的任务,在实际的业务场景中可以使用该线程池定期的同步数据。 1、创建延时任务线程池的Excutors源码,ScheduledThreadPoolExecutor实现了ScheduleExecutorService接口。 2、Schedule...

2018-08-20 13:38:34

阅读数 1280

评论数 0

JUC源码解析(4)----线程池之 newSingleThreadExecutor()

可以通过调用Executors类的static newSingleThreadExecutor()方法获得单个线程池。 语法 ExecutorService executor = Executors.newSingleThreadExecutor(); Java newSingleTh...

2018-08-20 11:28:04

阅读数 186

评论数 0

JUC源码解析(3)----线程池之 newCachedThreadPool()

newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 通过调用Executors类的静态newCachedThreadPool()方法可以获得缓存的线程池。 语法 ExecutorService executo...

2018-08-20 11:16:37

阅读数 140

评论数 0

JUC源码解析(2)----线程池之 newFixedThreadPool()

JDK 为我们内置了四种常见线程池的实现,均可以使用 Executors 工厂类创建。 1.newFixedThreadPool 上面这两个方法是创建固定数量的线程池的两种方法,两者的区别是:第二种创建方法多了一个线程工厂的方法。我们继续看ThreadPoolExecutor这个类中的...

2018-08-20 10:54:57

阅读数 105

评论数 0

JUC源码解析(1)---- ThreadPoolExecutor 实现原理、execute()实现

线程池类结构图: ThreadPoolExecutor Java.util.concurrent.ThreadPoolExecutor类是ExecutorSerivce接口的具体实现。ThreadPoolExecutor使用线程池中的一个线程来执行给定的任务(Runnable或者Runna...

2018-08-19 22:42:10

阅读数 85

评论数 0

MyBatis源码解读(3)——执行器

mybatis在执行期间,主要有四大核心接口对象: 执行器Executor,执行器负责整个SQL执行过程的总体控制。 参数处理器ParameterHandler,参数处理器负责PreparedStatement入参的具体设置。 语句处理器StatementHandler,语句处理器负责和JD...

2018-08-19 15:15:18

阅读数 1575

评论数 0

MyBatis源码解读(2)——MapperProxy

上篇文章,解析了SqlSession 的创建过程,本章延续上章的内容,接着SqlSession 来讲解MapperProxy。 1、通过sqlSession 调用getMapper() 方法,来解析过程。 接着上一篇讲到通过 DefaultSqlSessionFactory 可以得到一个 ...

2018-08-17 19:21:35

阅读数 69

评论数 0

MyBatis源码解读(1)----SqlSession 的创建过程

一、SqlSessionFactoryBuilder 1、通过字符流的方式创建 SqlSessionFactory 。           2、通过字节流(InputStream)的方式构件 SqlSessionFacotry。 3、通过Configuration对象构建Sql...

2018-08-17 16:13:30

阅读数 308

评论数 0

MyBatis常用对象SqlSessionFactory和SqlSession介绍和运用

Myabtis官网:http://www.mybatis.org/  github地址:https://github.com/mybatis/mybatis-3 MyBatis的持久化解决方案是将用户从原始的JDBC访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操...

2018-08-17 10:21:06

阅读数 47

评论数 0

Mybatis配置和接口映射原理

Mybatis可以把Mapper.xml文件直接映射到对应的接口文件,调用接口方法会自动去Mapper.xml文件中找到对应的标签,这个功能就是利用java的动态代理在binding包中实现的。 一、注册Mapper 在初始化时会把获取到的Mapper接口注册到MapperRegistry,注...

2018-08-16 18:56:36

阅读数 112

评论数 0

java 类的加载执行顺序

static代码块,执行顺序:从上往下,按顺序执行。   类调用: 1、类的静态代码块比无参构造方法先执行。 2、子类继承父类:        父类中的静态代码块比子类中的静态代码块先执行,先父后子。        父类中的无参构造方法比子类中的无参构造方法先执行,先父后子。  ...

2018-08-14 16:09:12

阅读数 65

评论数 0

进程间共享内存的8种方式

进程间的八种通信方式----共享内存是最快的 IPC 方式 1.无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2.高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它...

2018-08-10 10:24:06

阅读数 1796

评论数 0

缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

今天给大家整理一篇关于Redis经常被问到的问题:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等概念的入门及简单解决方案。 一、缓存雪崩 缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该...

2018-08-05 17:29:58

阅读数 32

评论数 0

为什么说Redis是单线程的以及Redis为什么这么快!

一、前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,...

2018-08-05 17:25:18

阅读数 87

评论数 0

Spring使用ThreadLocal解决线程安全问题

    我们知道在一般情况下,只有无状态的Bean才可以在多线程环境下共享,在Spring中,绝大部分Bean都可以声明为singleton作用域。就是因为Spring对一些Bean(如RequestContextHolder、TransactionSynchronizationManager、...

2018-08-05 11:27:37

阅读数 436

评论数 0

AQS工作原理分析

AQS工作原理分析 一、大致介绍 1、前面章节讲解了一下CAS,简单讲就是cmpxchg+lock的原子操作; 2、而在谈到并发操作里面,我们不得不谈到AQS,JDK的源码里面好多并发的类都是通过Sync的内部类继承AQS而实现出五花八门的功能; 3、本章节就和大家分享分析一下AQS的工作原理;...

2018-07-31 16:36:14

阅读数 1607

评论数 0

面试必备:HashMap源码解析(JDK8)

参考文章:https://blog.csdn.net/zxt0601/article/details/77413921原理:参考文章http://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%...

2018-07-10 14:11:27

阅读数 104

评论数 0

提示
确定要删除当前文章?
取消 删除