草庐IT

jdk线程池ThreadPoolExecutor优雅停止原理解析(自己动手实现线程池)(二)

jdk线程池工作原理解析(二)本篇博客是jdk线程池ThreadPoolExecutor工作原理解析系列博客的第二篇,在第一篇博客中从源码层面分析了ThreadPoolExecutor在RUNNING状态下处理任务的核心逻辑,而在这篇博客中将会详细讲解jdk线程池ThreadPoolExecutor优雅停止的实现原理。jdk线程池ThreadPoolExecutor工作原理解析(自己动手实现线程池)(一)ThreadPoolExecutor优雅停止源码分析(自己动手实现线程池v2版本)ThreadPoolExecutor为了实现优雅停止功能,为线程池设置了一个状态属性,其共有5种情况。在第一篇

jdk线程池ThreadPoolExecutor优雅停止原理解析(自己动手实现线程池)(二)

jdk线程池工作原理解析(二)本篇博客是jdk线程池ThreadPoolExecutor工作原理解析系列博客的第二篇,在第一篇博客中从源码层面分析了ThreadPoolExecutor在RUNNING状态下处理任务的核心逻辑,而在这篇博客中将会详细讲解jdk线程池ThreadPoolExecutor优雅停止的实现原理。jdk线程池ThreadPoolExecutor工作原理解析(自己动手实现线程池)(一)ThreadPoolExecutor优雅停止源码分析(自己动手实现线程池v2版本)ThreadPoolExecutor为了实现优雅停止功能,为线程池设置了一个状态属性,其共有5种情况。在第一篇

java8 (jdk 1.8) 新特性——Lambda

java8(jdk1.8)新特性——初步认识  1.什么是lambda?目前已知的是,有个箭头  ->  说一大段官方话,也没有任何意义我们直接看代码:之前我们创建线程是这样的Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){System.out.println("run。。。。。。");}};runnable.run();用lambda:Runnablerun2=()->System.out.println("run。。。。。。");run2.run();     是不是感觉特别离谱,看不懂别急,还有更离谱的很常见的一个例子,比较

java8 (jdk 1.8) 新特性——Lambda

java8(jdk1.8)新特性——初步认识  1.什么是lambda?目前已知的是,有个箭头  ->  说一大段官方话,也没有任何意义我们直接看代码:之前我们创建线程是这样的Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){System.out.println("run。。。。。。");}};runnable.run();用lambda:Runnablerun2=()->System.out.println("run。。。。。。");run2.run();     是不是感觉特别离谱,看不懂别急,还有更离谱的很常见的一个例子,比较

JVM、JDK、JRE你分的清吗

JVM、JDK、JRE你分的清吗前言在我们学习Java的时候,就经常听到"需要安装JDK"、"运行需要JRE"、"JVM调优"等等,这里面的JVM、JDK、JRE你真的分得清吗,今天我们就来讲讲它们之间的关系。JVM学过Java的都知道,JAVA是一次编译,到处运行,这主要是通过JVM,JVM是JAVA跨平台的核心,它主要是指的是JAVA虚拟机,JVM是不能单独安装的。JVM主要功能是屏蔽了不同平台之间的差异性,负责将java字节码文件解释成对应系统可以运行的机器指令,我们在不同操作系统上执行JAVA文件的时候,需要安装对应系统的JDK,编写的JAVA程序首先会被编译成.class文件,再把.

JVM、JDK、JRE你分的清吗

JVM、JDK、JRE你分的清吗前言在我们学习Java的时候,就经常听到"需要安装JDK"、"运行需要JRE"、"JVM调优"等等,这里面的JVM、JDK、JRE你真的分得清吗,今天我们就来讲讲它们之间的关系。JVM学过Java的都知道,JAVA是一次编译,到处运行,这主要是通过JVM,JVM是JAVA跨平台的核心,它主要是指的是JAVA虚拟机,JVM是不能单独安装的。JVM主要功能是屏蔽了不同平台之间的差异性,负责将java字节码文件解释成对应系统可以运行的机器指令,我们在不同操作系统上执行JAVA文件的时候,需要安装对应系统的JDK,编写的JAVA程序首先会被编译成.class文件,再把.

深入理解AQS--jdk层面管程实现【管程详解的补充】

什么是AQS  1.java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器。  2.JDK中提供的大多数的同步器如Lock,Latch,Barrier等,都是基于AQS框架来实现的    【1】一般是通过一个内部类Sync继承AQS    【2】将同步器所有调用都映射到Sync对应的方法 AQS具备的特性:  1.阻塞等待队列 , 2.共享/独占 , 3.公平/

深入理解AQS--jdk层面管程实现【管程详解的补充】

什么是AQS  1.java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器。  2.JDK中提供的大多数的同步器如Lock,Latch,Barrier等,都是基于AQS框架来实现的    【1】一般是通过一个内部类Sync继承AQS    【2】将同步器所有调用都映射到Sync对应的方法 AQS具备的特性:  1.阻塞等待队列 , 2.共享/独占 , 3.公平/

JDK中内嵌JS引擎介绍及使用

原文:JDK中内嵌JS引擎介绍及使用-Stars-One的杂货小窝最近研究阅读这个APP,其主要功能就是通过一个个书源,从而实现移动端阅读的体验比如说某些在线小说阅读网站,会加上相应的广告,从而影响用户阅读体验,于是阅读这个APP就是做了类似净化阅读体验但是小说阅读网站千千万万,如果去适配每个小说阅读网站,岂不是累死,且作者也会有被发律师函的危险,于是作者提供了对应的工具,允许各位用户可自定义书源,阅读APP则通过导入书源,即可实现对某个小说阅读网站的支持这里说的书源,实际上就是JS脚本代码,作者本质上是使用了rhino这个Java的JS引擎技术来实现的介绍JDK1.6和JDK1.7采用Rhi

JDK中内嵌JS引擎介绍及使用

原文:JDK中内嵌JS引擎介绍及使用-Stars-One的杂货小窝最近研究阅读这个APP,其主要功能就是通过一个个书源,从而实现移动端阅读的体验比如说某些在线小说阅读网站,会加上相应的广告,从而影响用户阅读体验,于是阅读这个APP就是做了类似净化阅读体验但是小说阅读网站千千万万,如果去适配每个小说阅读网站,岂不是累死,且作者也会有被发律师函的危险,于是作者提供了对应的工具,允许各位用户可自定义书源,阅读APP则通过导入书源,即可实现对某个小说阅读网站的支持这里说的书源,实际上就是JS脚本代码,作者本质上是使用了rhino这个Java的JS引擎技术来实现的介绍JDK1.6和JDK1.7采用Rhi