02 2021 档案
发表于 2021-02-23 22:01阅读:95评论:1推荐:0
摘要:类加载子系统 概述 完整图如下 如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢? 类加载器 执行引擎 类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运
阅读全文 »
发表于 2021-02-23 08:44阅读:212评论:0推荐:0
摘要:Vue声明周期与路由: vue实例的生命周期: data: { message: '床前明月光' 3 }, methods: { show() { console.log('执行show方法') 7 }, update() { this.message = '玻璃好上霜' } } <button @
阅读全文 »
发表于 2021-02-21 21:46阅读:55评论:0推荐:0
摘要:线程状态转换 RUNNABLE ←-> WAITING 线程用synchronized(obj)获取了对象锁后 调用obj.wait()方法时,t 线程从RUNNABLE --> WAITING 调用obj.notify(),obj.notifyAll(),t.interrupt()时 竞争锁成功,
阅读全文 »
发表于 2021-02-13 23:07阅读:135评论:0推荐:0
摘要:wait notify 原理 Owner 线程发现条件不满足,调用 wait 方法,即可进入 WaitSet 变为 WAITING 状态 BLOCKED 和 WAITING 的线程都处于阻塞状态,不占用 CPU 时间片 BLOCKED 线程会在 Owner 线程释放锁时唤醒 WAITING 线程会在
阅读全文 »
发表于 2021-02-09 15:46阅读:92评论:0推荐:0
摘要:轻量级锁在没有竞争时(就自己这个线程),每次重入仍然需要执行 CAS 操作。Java 6 中引入了偏向锁来做进一步优化:只有第一次使用 CAS 将线程 ID 设置到对象的 Mark Word 头,之后发现这个线程 ID 是自己的就表示没有竞争,不用重新 CAS。以后只要不发生竞争,这个对象就归该线程
阅读全文 »
发表于 2021-02-03 00:33阅读:158评论:0推荐:0
摘要:死锁是什么?有什么危害? 发生在并发中 首先你要知道,死锁一定发生在并发场景中。我们为了保证线程安全,有时会给程序使用各种能保证并发安全的工具,尤其是锁,但是如果在使用过程中处理不得当,就有可能会导致发生死锁的情况。 互不相让 死锁是一种状态,当两个(或多个)线程(或进程)相互持有对方所需要的资源,
阅读全文 »