
Java学习笔记
文章平均质量分 78
JYLiszt
这个作者很懒,什么都没留下…
展开
-
【Java学习笔记】多线程 Part 5 - 线程池
多线程 Part 4 - 线程池两种线程模型1. 用户线程ULT2. 内核线程KLT为什么要有线程池两种线程模型1. 用户线程ULT由用户程序实现,不依赖于操作系统。不需要用户态与核心态的切换,速度快。内核对用户线程无感知,线程阻塞则进程阻塞。2. 内核线程KLT由操作系统管理,线程阻塞不会引起进程阻塞。在多处理器下,多线程在多处理器上并行运行。效率比用户线程低。JVM基本用的是KLT。从Java创建的线程会1:1的对应到内核,然后由CPU调度执行。为什么要有线程池创建线程和销毁线程都是很耗资原创 2020-10-05 17:57:13 · 763 阅读 · 2 评论 -
【Java学习笔记】多线程 Part 7 - CountDownLatch
CountDownLatch一、CountDownLatch简述二、代码示例1. 基本应用2. 跑步比赛三、源码分析(基于Java 8)1. new CountDownLatch()2. countDown()3. await()四、CountDownLatch 和 join 有区别吗一、CountDownLatch简述CountDownLatch是JUC下的其中一个辅助类。当有某个事务需要在其他一些事务执完成之后再执行,我们就可以使用CountDownLatch来完成这个工作。Coun原创 2020-10-04 09:32:01 · 265 阅读 · 0 评论 -
【Java学习笔记】多线程 Part 4 - Condition
多线程 Part 4 - Condition一、Condition基本用法二、源码分析1. await() 被唤醒前2. signal()3. await() 被唤醒后三、await() & signal 流程图一、Condition基本用法Condition和Lock一样来自JUC,一般都会和Lock连用,并且方式和synchronized非常相似。等待唤醒synchronizedwait()notify()Lockcondition.await()con原创 2020-09-20 16:20:46 · 252 阅读 · 0 评论 -
【Java学习笔记】多线程 Part 3 - ReentrantLock
多线程 Part 3 - ReentrantLock1. ReentrantLock 加锁原理2. ReentrantLock 解锁原理3. ReentrantLock 处理中断1. ReentrantLock 加锁原理简单测试一下两个线程分别给count变量做加1操作20000次class Process implements Runnable{ int count = 0; private ReentrantLock lock = new ReentrantLock(); public原创 2020-09-19 06:03:51 · 316 阅读 · 0 评论 -
【Java学习笔记】多线程 Part 2 - synchronized
多线程一、基本概念二、线程的3种创建方式1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口一、基本概念程序是指令和数据的有序集合,其本身没有任何运行的含义进程是程序的一次执行过程,是系统资源分配和拥有的单位线程是CPU调度和分配的基本单位线程和进程都可并发执行线程的划分尺度远小于进程,是多线程比多进程并发性更高不同进程间不会共享逻辑地址空间进程中的线程共享堆区,但各自维持自己的栈main()称之为主线程,为系统的入口,用于执行整个程序二、线程的3种创原创 2020-09-18 18:29:12 · 414 阅读 · 0 评论 -
【Java学习笔记】多线程 Part 1 - 多线程基础
多线程基础一、基本概念二、线程的3种创建方式1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口小结三、线程状态四、线程停止五、线程礼让 yield六、守护线程 daemon一、基本概念程序是指令和数据的有序集合,其本身没有任何运行的含义进程是程序的一次执行过程,是系统资源分配和拥有的单位线程是CPU调度和分配的基本单位线程和进程都可并发执行线程的划分尺度远小于进程,是多线程比多进程并发性更高不同进程间不会共享逻辑地址空间进程中的线程共享堆区,但各自维持自己原创 2020-09-17 16:36:06 · 364 阅读 · 0 评论 -
【Java学习笔记】代理模式
代理模式一、静态代理模式角色分析老套租房例子静态代理模式的优点静态代理模式的缺点二、动态代理模式还是租房的例子动态代理的优点一、静态代理模式角色分析抽象角色:一般使用接口或抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,一般会有附属操作客户:访问代理对象的人老套租房例子租房是抽象角色public interface Rent { void rent();}房东是真实角色,房东现在只要管自己租房别的什么都不用管public class Host impleme原创 2020-09-14 15:18:09 · 91 阅读 · 0 评论 -
【Java学习笔记】单例模式
单例模式一、单例模式的作用二、应用场景三、分类1. 饿汉式2. 静态内部类3. 懒汉式4. 枚举四、总结一、单例模式的作用通过单例模式可以保证系统中一个类只有一个实例二、应用场景主要应用在资源共享控制资源之间交流数据库连接池日志应用应用配置线程池三、分类1. 饿汉式定义变量的时候就直接初始化但容易浪费空间//饿汉式public class Hungry { //饿汉式可能会浪费空间 private Hungry() { } private fina原创 2020-09-14 12:26:29 · 541 阅读 · 0 评论 -
【Java学习笔记】工厂模式
工厂模式简单工厂模式作用:实现创建者和调用者的分离。原本我们是用new来创建新对象,而现在我们用一个工厂类来代替创建新对象的工作,讲调用者与实现类解耦(当实现类发生改变时,调用者的代码不需要做任何改变)。//没有用工厂模式的时候public class Consumer { public static void main(String[] args) { Car vmw = new Vmw(); Car tesla = new Tesla(); }}分类:简单工厂模式工厂方法原创 2020-09-14 08:23:27 · 152 阅读 · 0 评论