
JUC&JVM
文章平均质量分 52
#Java高级进阶
CRUD_CODER_LIN
编程需要摆正态度、明确心态,多看多敲多思考多交流,才有所为!
展开
-
【快速入门JVM】Java虚拟机规范之(分代收集算法)4大GC算法
GC的作用范围是方法区和堆区,次数上频繁收集Young区、次数上频繁收集Old区、基本不动Perm区(特殊情况也会清除永久区)。 JVM在进行GC时,并非每次都对三个内存区域一起回收的,大部分时候回收的都是指新生代。所以GC按照回收的区域又分了两种类型,一种是普通GC(minor GC),一种是全局GC(major GC or Full GC)。 普通GC(minor GC):只...原创 2019-11-06 20:00:22 · 599 阅读 · 0 评论 -
【快速入门JVM】Java虚拟机规范之Java体系结构概述
JVM是运行在操作系统之上的,它与硬件没有直接的交互,它主要包括运行时数据区:方法区+堆+Java栈+本地方法栈+程序计数器,以下就各自的区别进行了详细的描述。一、类装载器一 一 Classloader 主要负载加载class文件的加载(硬盘挪到内存,变成大Class,做元数据模板),它是否运行,由执行引擎(Execution Engine)负责解释命令,提交给操作系统执行!类装...原创 2019-11-04 15:44:17 · 302 阅读 · 0 评论 -
【第九章】JUC之ThreadPoolExecutor线程池详解
一、线程池简介 线程池主要是为了控制运行的线程数量,处理过程中将任务放到队列中,然后在线程创建后启动这些任务,如果线程数超过了最大数量,超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。线程池主要特点是:线程复用、控制崔大并发数、管理线程。二、如何使用线程池? Java中的线程池是通过Executor框架实现的,该框架中用到了Executor、Executors、E...原创 2019-11-01 21:21:42 · 352 阅读 · 0 评论 -
【第八章】JUC之阻塞队列BlokingQueue详解
笔记大纲栈与队列阻塞队列 阻塞队列的好处 BlokingQueue接口的实现类(前3个)BlokingQueue核心方法(4种)BlokingQueue案例应用一、栈与队列 栈与队列都是一种数据结构。 栈:遵循“先进后出”、“后进先出”原则 队列:遵循“x先进先出”二、阻塞队列 阻塞队列是一个队列,它最大的特点就是阻塞的线程满足条件就会被自动唤醒,不需要我们人...原创 2019-10-31 14:10:57 · 403 阅读 · 0 评论 -
【第七章】JUC之读写锁ReetrantReadWriteLock应用
一、常见的锁按世界观来分: 乐观锁:Redis数据库; 悲观锁:所有关系型数据库都是采用这种方式,如MySQL{分表锁、行锁(行锁并发性更强行锁才会发生死锁)},读写数据时会上锁,只要解锁后才能进行下一步操作。按功能来分: 分为读锁【共享锁】、写锁【独占锁】,都会发生死锁!应用软件:红蜘蛛、投影仪。二、代码案例1-1MyCache资源类import java.ut...原创 2019-10-31 10:39:07 · 296 阅读 · 1 评论 -
【第六章】JUC之常见辅助类CountDownLatch、CyclicBarrier、Semaphore应用详解
一、CountDownLatch减少计数await():是当前线程等待直到锁向下计数为0,除非线程interrupted;countDown():减少锁的数量,释放所有等待的线程。基本原理 CountDownLatch主要有两个方法,当线程调用await()时,此时线程会被阻塞;当线程 调用countDown()会将计数器减1(调用CountDown()的线程不会阻塞)。 当计...原创 2019-10-30 21:27:25 · 370 阅读 · 0 评论 -
【第五章】JUC之获取多线程方式#Callable接口详解
笔记大纲获取多线程方式(4种)Runnable&Callable接口区别如何使用Callable接口 FutureTask是什么?(测试代码+结果)一、获取多线程方式(4种) 传统的是继承thread类和实现runnable接口;java5后又实现callable接口和在java线程池(常驻堆中的养老区)获得。二、Runnable&Callable接口区别c...原创 2019-10-30 19:27:53 · 284 阅读 · 0 评论 -
【第四章】JUC之多线程锁Synchronized#8种应用场景浅析
笔记大纲标准访问,先打印短信还是邮件(先短信后邮件) 停4秒在短信方法内,先打印短信还是邮件(先短信后邮件) 普通hello方法,先打印短信还是hello(先Hello后短信) 现在有两部手机,先打印短信还是邮件(先邮件后短信)两个静态同步方法,1部手机,先打印短信还是邮件(先短信后邮件)两个静态同步方法,2部手机,先打印短信还是邮件(先短信后邮件)1个静态同步方法,1个普通同步...原创 2019-10-30 18:51:21 · 456 阅读 · 0 评论 -
【第三章】JUC之ArrayList、HashSet、HashMap类型线程不安全解决方案总结
笔记大纲CopyOnWriteArrayList解决ArrayList集合类型线程不安全问题CopyOnWriteArraySet解决HashSet集合类型线程不安全问题ConcurrentHashMap解决HashMap集合类型线程不安全问题一、ArrayList集合类型线程安全么? ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.Co...原创 2019-10-29 21:22:09 · 383 阅读 · 0 评论 -
【第二章】JUC之线程间通信&线程间定制化调用通信
笔记大纲线程间通信 经典生产者与消费者案例问题(synchronized) 经典生产者与消费者案例问题(新增至四个线程) 经典生产者与消费者案例问题(while取代if) JAVA8新版实现(Lock-对标实现&Condition)线程间定制化调用通信(案例)一、线程间通信1.经典生产者与消费者案例问题(synchronized) 现在有两个线程,要实现一个...原创 2019-10-29 19:44:29 · 329 阅读 · 0 评论 -
【第一章】JUC之进程与线程、lock接口、JAVA8特性基础总结
笔记大纲进程与线程 进程&线程 线程的状态 wait&sleep 并发&并行 Lock接口 Synchronzied Lock Synchronzied&Lock区别 售票案例代码 java8特性 Lambda表达式 接口里存在的实现方法 案例代码JUC:java.util.concurrent在并发编程...原创 2019-10-29 15:20:55 · 326 阅读 · 0 评论