jvm&juc&netty学习笔记
文章平均质量分 95
jvm&juc&netty学习笔记
被拯救的威尼斯
这个作者很懒,什么都没留下…
展开
-
juc 笔记 5
*** 任务拒绝策略*//*** 任务队列// 1. 任务队列 private Deque < T > queue = new ArrayDeque < >();// 2. 锁 private ReentrantLock lock = new ReentrantLock();// 3. 生产者条件变量 private Condition fullWaitSet = lock . newCondition();原创 2024-04-25 16:08:51 · 765 阅读 · 1 评论 -
juc 笔记 4
5. 享模型之内存 volatile可以解决 可见性 和 有序性 问题,但不能处理原子性问题. synchronized 则对于 可见性,有序性,原子性 都可以解决 5.1 Java 内存模型 JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、CPU 指令优化等。 JMM 体现在以下几个方面 ● 原子性 - 保证指令不会受到线程上下文切换的影响 ● 可见性 - 保证指令不会受 cpu 缓存的影响 ● 有序性 - 保证指令不会受原创 2024-04-23 17:10:54 · 575 阅读 · 0 评论 -
juc 笔记 4
● 另外如果由于某个线程进入了死循环,导致其它线程一直等待,对于这种情况 linux 下可以通过 top 先定位到CPU 占用高的 Java 进程,再利用 top -Hp 进程id 来定位是哪个线程,最后再用 jstack 排查。● 第二,如果有些干扰线程错误地 notify 了 wait 线程,条件不满足时还要重新等待,使用了 while 循环来解决此问题。很多教程中把饥饿定义为,一个线程由于优先级太低,始终得不到 CPU 调度执行,也不能够结束,饥饿的情况不。原创 2024-03-28 15:34:17 · 698 阅读 · 0 评论 -
juc笔记 3
● obj.wait() 让进入 object 监视器的线程到 waitSet 等待● obj.notify() 在 object 上正在 waitSet 等待的线程中挑一个唤醒● obj.notifyAll() 让 object 上正在 waitSet 等待的线程全部唤醒它们都是线程之间进行协作的手段,都属于 Object 对象的方法。必须获得此对象的锁,才能调用这几个方法log.debug("执行....");// 让线程在obj上一直等待下去。原创 2024-03-14 10:04:25 · 847 阅读 · 1 评论 -
juc笔记2
4位的Java对象年龄。● 在 Thread-2 上锁的过程中,如果 Thread-3,Thread-4,Thread-5 也来执行 synchronized(obj),就会进入EntryList BLOCKED。● 在 Java 6 之后自旋锁是自适应的,比如对象刚刚的一次自旋操作成功过,那么认为这次自旋成功的可能性会高,就多自旋几次;当(某类型对象)撤销偏向锁阈值超过 20 次后,jvm 会这样觉得,我是不是偏向错了呢,于是会在给(所有这种类型的状态为偏向锁的)对象加锁时重新偏向至新的加锁线程。原创 2024-03-03 21:11:05 · 790 阅读 · 0 评论 -
JUC笔记1
● RUNNABLE 当调用了 start() 方法之后,注意,Java API 层面的 RUNNABLE 状态涵盖了 操作系统 层面的【可运行状态】、【运行状态】和【阻塞状态】(由于 BIO 导致的线程阻塞,在 Java 里无法区分,仍然认为是可运行)当 Context Switch 发生时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,Java 中对应的概念就是程序计数器(Program Counter Register),它的作用是记住下一条 jvm 指令的执行地址,是线程私有的。原创 2024-02-22 22:21:23 · 831 阅读 · 1 评论 -
内存结构笔记 1
所有java虚拟机线程的共享区域存储类的结构的相关信息,如运行时常量池、成员变量、方法数据、成员方法和构造器的代码等方法区在虚拟机启动时创建,其逻辑上是堆的一个组成部分,但在实现时不同的JVM厂商可能会有不同的实现常量池:常量池,就是一张表,存储在*.class字节码文件中。虚拟机指令根据这张常量表找到要执行的类名、方法名、参数类型、字面量等信息运行时常量池:常量池是*.class文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址。原创 2024-02-21 22:32:02 · 790 阅读 · 0 评论