摘要:
6.23Java多线程CAS原子操作 锁的分类 悲观锁: synchronized是独占锁(悲观锁) 其特点是 会导致其他所有需要锁的线程挂起,等待持有锁的线程释放资源 乐观锁(Compare and Swap:比较与交换) 每次操作不加锁,假设没有冲去取完成某项操作 如果因为冲突导致失败则会重试到 阅读全文
posted @ 2021-06-23 15:53
俊king
阅读(147)
评论(0)
推荐(0)
摘要:
6.23Java多线程可重入锁实现原理 什么是可重入锁? 某个线程试图获取一个已经由它自己持有的锁时,这个请求会立刻成功 将这个锁的计数值+1.同时锁住资源 当线程退出同步代码块时,计数器将会递减。计数值=0时,锁释放 如果没有可重入锁,第二次获得锁时会进入死锁状态 锁是作为并发共享数据,保证一致性 阅读全文
posted @ 2021-06-23 15:51
俊king
阅读(321)
评论(0)
推荐(0)
摘要:
6.22 Java多线程ThreadLocal 线程变量的特点 多线程环境下,每个线程都有自己的数据 一个线程的局部变量只有自己能看见,不会影响其他线程(使用局部变量比使用其他变量好) ThreadLocal的特点 ThreadLocal能够放一个线程级别的变量 本身能够被多个线程共享使用,又能达到 阅读全文
posted @ 2021-06-23 10:18
俊king
阅读(137)
评论(0)
推荐(0)
摘要:
6.22Java多线程单例设计模式 设计一个单例模式 类与类之间的关系 目标:对外只有一个对象 介绍double-checking单例模式 使用volatile进行锁定资源 饿汉式:直接实例化了对象 懒汉式:没有直接实例化对象 DCL单例设计模式实例demo 图示: package thread.r 阅读全文
posted @ 2021-06-23 10:15
俊king
阅读(264)
评论(0)
推荐(0)
摘要:
6.22Java多线程volitale volitale说明 作用: 保证线程间变量的可见性(注意:不是线程之间的变量可见) 线程A对变量X进行修改后,在线程A后面执行的其他线程能看到变量X的变动。 需要符合以下两个规则: 线程对变量进行修改之后要立刻写回到主内存 >防止主内存与工作内存中不一致的情 阅读全文
posted @ 2021-06-23 10:13
俊king
阅读(78)
评论(0)
推荐(0)
摘要:
6.22Java多线程happenbefore 编译器和CPU会尝试重排指令使得代码更快地运行 发生情况: 代码间没有直接联系,没有依赖 这样就会发生指令重排a 步骤 拿到指令,进行编译,放入寄存器 >fetch 解码指令,从寄存器中拿值,从主存拷贝到工作内存 >copy 执行选项 >excutor 阅读全文
posted @ 2021-06-23 10:11
俊king
阅读(191)
评论(0)
推荐(0)
摘要:
6.22Java任务调度框架:Quartz Java任务调度框架:Quartz 由四大部分组成: Scheduler >调度器,控制所有的调度 Trigger >触发条件,采用DSL模式 DSL: >Domain-specific language领域特定语言,受限表达下的一种计算机程序语言。声明式 阅读全文
posted @ 2021-06-23 10:09
俊king
阅读(240)
评论(0)
推荐(0)

浙公网安备 33010602011771号