锁和多线程
文章平均质量分 76
cb李先生
这个作者很懒,什么都没留下…
展开
-
线程池简单实现
线程池简单实现UML核心代码任务队列满时执行的拒绝策略核心线程池线程池中使用的任务模型任务队列其他一些接口的定义全部代码UML核心代码任务队列满时执行的拒绝策略枚举单例 + 策略(DenyPolicyStrategy.java)package com.example.executor.service.impl;import com.example.executor.exception.RunnableDenyException;/** * 任务数量达到上限时, 线程池处理的三种策略原创 2020-06-25 16:06:00 · 138 阅读 · 0 评论 -
synchronized锁
锁升级过程无锁状态偏向锁: 一旦有线程对该对象加锁,markword区前54位指向当前线程指针自旋锁(无锁,轻量级): CAS一旦有多个线程竞争锁,在每个线程栈帧内生成Lock Record, 前62位保存拿到当前执行权限的线程的Lock RecordLock Record中保存之前对象头中被替换掉的内容重量级: 自旋10次,升级为重量级锁, 其他线程不再自旋,进入队列等待状态, 借用操作系统资源加锁锁降级: gc时markdown头中的信息字节码命令monitorenter m原创 2020-06-16 23:12:56 · 3992 阅读 · 0 评论