会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
α_伊卡洛斯
博客园
首页
新随笔
联系
订阅
管理
2020年10月31日
Executor框架
摘要: (已迁移) -- 线程池框架 -- 采用线程池好处: 1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3、提高线程的可管理性。 -- Executor:执行者,java线程池框架最上层父接口。接口中只
阅读全文
posted @ 2020-10-31 23:53 α_伊卡洛斯
阅读(126)
评论(0)
推荐(0)
2020年10月25日
Java中的锁——Lock
摘要: (已迁移) lock与synchronized的区别: 1、Lock是一个接口,synchronized是关键字。前者可以程序员自己DIY功能,实现自定义同步组件;后者是JVM来维护的。 2、Lock需要手动加解锁,synchronized自动完成加解锁。 3、synchronized修饰的代码执行
阅读全文
posted @ 2020-10-25 04:01 α_伊卡洛斯
阅读(179)
评论(0)
推荐(0)
2020年10月18日
线程中断
摘要: (已迁移) -- 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务。Java没有提供一种安全直接的方法来停止某个线程,但是Java提供了中断机制。 -- 一个线程不应该由其他线程来强制停止,而是应
阅读全文
posted @ 2020-10-18 22:56 α_伊卡洛斯
阅读(115)
评论(0)
推荐(0)
Java线程池简单实现
摘要: (已迁移) -- 线程池优势: 不会一个任务一个线程,进而创建以万记的线程量,导致频繁的线程上下文切换,消耗系统资源。且线程的创建和销毁同样浪费着系统资源。 1 public interface JobRun { 2 //Job的具体工作内容 3 void concreteJob(); 4 } 1
阅读全文
posted @ 2020-10-18 16:47 α_伊卡洛斯
阅读(154)
评论(0)
推荐(0)
ThreadLocal线程变量
摘要: (已迁移) -- Thread类里面有一个threadLocals成员变量 -- ThreadLocal类下面有一个静态内部类ThreadLocalMap -- ThreadLocal类下有get,set,remove方法 -- ThreadLocal使用: 1 public class Solut
阅读全文
posted @ 2020-10-18 01:55 α_伊卡洛斯
阅读(225)
评论(0)
推荐(0)
2020年10月13日
锁的内存语义
摘要: (已迁移) 1 class MonitorExample{ 2 int a = 0; 3 4 public synchronized void writer(){ 5 ++a; 6 } 7 8 public synchronized void reader(){ 9 int i = a; 10 ..
阅读全文
posted @ 2020-10-13 22:44 α_伊卡洛斯
阅读(90)
评论(0)
推荐(0)
2020年10月12日
JMM(Java内存模型)不保证对64位long型和double型变量的写操作具有原子性
摘要: (已迁移) 在计算机中,数据通过总线在处理器和内存之间传递。 每次处理器和内存之间数据传递都是通过一些列步骤来完成,被称为“总线事务”。 包括读事务和写事务。 总线会同步这些事务,在一个处理器执行总线事务期间,总线会禁止其他处理器和I/O设备执行内存的读和写。 假设处理器A,B,C同时向总线发起总线
阅读全文
posted @ 2020-10-12 23:57 α_伊卡洛斯
阅读(530)
评论(0)
推荐(0)
synchronized关键字的使用
摘要: (已迁移) -- 类锁与对象锁的区别 类锁所有对象一把锁 对象锁一个对象一把锁,多个对象对把锁 -- 同步是对同一把锁而言的,同步这个概念是在多个线程争夺同一把锁的时候才能实现的,如果多个线程争夺不同的锁,那多个线程是不能同步的 两个线程一个取对象锁,一个取类锁,则不能同步 两个线程一个取a对象锁,
阅读全文
posted @ 2020-10-12 22:48 α_伊卡洛斯
阅读(134)
评论(0)
推荐(0)
2020年10月11日
synchronized锁机制
摘要: (已迁移) synchronized的执行过程: 0 检测Mark Word里面是否已存在某一个线程ID,若若Mark Word里面不存在某一个线程ID,则CAS将当前线程的ID替换Mark Word,如果成功则表示当前线程获得了偏向锁,可执行同步代码块;如果失败,则说明发生竞争,跳转到3. 1 若
阅读全文
posted @ 2020-10-11 04:34 α_伊卡洛斯
阅读(179)
评论(1)
推荐(0)
2020年10月8日
volatile关键字
摘要: (已迁移) volatile 在多处理器开发中保证共享变量的可见性。 比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。 计算机存储体系中,自顶向下:CPU寄存器—>CPU缓存(L1、L2、L3)—>内存—>其它存储设备,如硬盘。 使用volatile关键字修饰的
阅读全文
posted @ 2020-10-08 20:38 α_伊卡洛斯
阅读(152)
评论(0)
推荐(0)
公告