上一页 1 ··· 98 99 100 101 102 103 104 105 106 ··· 111 下一页
摘要: 文章目录ReentrantLock简介AQS回顾ReentrantLock原理ReentrantLock结构非公平锁的实现原理lock方法获取锁tryRelease锁的释放公平锁的实现原理lock方法获取锁tryRelease锁的释放lockInterruptibly可中断方式获取锁tryLock超 阅读全文
posted @ 2021-06-17 22:12 hanease 阅读(1321) 评论(1) 推荐(0)
摘要: AQS底层实现原理用一句话总结就是:volatile + CAS + 一个虚拟的FIFO双向队列(CLH队列)。所以在了解AQS底层实现时,需要先深入了解一下CAS实现原理。 #名词解释(1)CAS:无锁的策略使用一种比较交换的技术(Compare And Swap)来鉴线程修改冲突,一旦检测到冲突 阅读全文
posted @ 2021-06-17 21:53 hanease 阅读(1622) 评论(0) 推荐(0)
摘要: 一、什么是CAS? 在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一 阅读全文
posted @ 2021-06-16 22:53 hanease 阅读(619) 评论(0) 推荐(0)
摘要: AQS(AbstractQueuedSynchronizer)是Java众多锁以及并发工具的基础类,底层采用乐观锁,大量采用CAS操作保证其原子性,并且在并发冲突时,采用自旋方法重试。实现了轻量高效的获取锁。 1. AQS的关注点ReentrantLock中使用到了AQS高并发组件,用它来维护锁的状 阅读全文
posted @ 2021-06-16 22:37 hanease 阅读(171) 评论(0) 推荐(0)
摘要: 为什么要有内存模型 在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。 内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算 阅读全文
posted @ 2021-06-16 22:05 hanease 阅读(77) 评论(0) 推荐(0)
摘要: 一、 什么是进程、线程?线程和进程的区别?1. 进程当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序。进程是操作系统进行资源分配和调度的一个独立单位。进程的三个特征: 独立性独立存在的实体,每个进程都有自己独立私有的一块内存空间。动态性程序只是一个静态的指令集合,而进程是一个正在 阅读全文
posted @ 2021-06-16 21:56 hanease 阅读(166) 评论(0) 推荐(0)
摘要: 从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。或者当前正在被服务的线程需要睡一会,醒来后继续被服务,这就是sl 阅读全文
posted @ 2021-03-16 21:44 hanease 阅读(133) 评论(0) 推荐(0)
摘要: 多线程问题: 1、java中为什么要使用多线程使用多线程,可以把一些大任务分解成多个小任务来执行,多个小任务之间互不影像,同时进行,这样,充分利用了cpu资源。 2、java中简单的实现多线程的方式 继承Thread类,重写run方法; 1 2 3 4 5 6 7 8 9 10 11 12 13 1 阅读全文
posted @ 2021-03-15 21:17 hanease 阅读(288) 评论(0) 推荐(0)
摘要: 堆和栈的概念和区别 在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式 阅读全文
posted @ 2021-03-13 22:08 hanease 阅读(471) 评论(0) 推荐(0)
摘要: jmap 是一个 Java 内存映像工具,用于生成 Java 应用程序的堆转储文件(heap dump)并查看对象内存占用情况,还可以分析 JVM 的垃圾收集器行为。它在排查内存泄漏、查看对象分布以及分析内存占用问题时非常有用。 基本用法jmap [options] <pid>1pid:Java 进 阅读全文
posted @ 2021-03-11 22:13 hanease 阅读(256) 评论(0) 推荐(0)
上一页 1 ··· 98 99 100 101 102 103 104 105 106 ··· 111 下一页