摘要: 一、线程、线程池 线程是CPU调度资源的最小单位,线程模型分为KLT和ULT模型,JVM使用的KLT模型,Java线程与OS线程保持1:1的映射关系 NEW,新建 RUNNABLE,运行 BLOCKED,阻塞 WAITING,等待 TIMED_WAITING,超时等待 TERMINATED,终结 二 阅读全文
posted @ 2020-11-10 16:09 vvning 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 1、Atomic 原子操作,即不能被分割的最小粒子 1.1 Atomiclnteger的使用场景 AtomicInteger提供原子操作来进行Integer的使用,适合并发情况下的使用,比如两个线程对同一个整数累加。 1.2 为什么Atomiclnteger是线程安全的,原理是什么 AtomicIn 阅读全文
posted @ 2020-11-10 10:22 vvning 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 1、Semaphore 它的作用是控制访问特定资源的线程数目,底层依赖AQS的状态state,是在生产中比较常见的一个工具类。 2、Semaphore常见API public Semphore(int permits) public Semphore(int permits, boolean fai 阅读全文
posted @ 2020-11-09 13:36 vvning 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 一 BlockingQueue 是java.util.concurrent包提供的用于解决并发生产者-消费者最有用的类,它的特性是在任意时刻只有一个线程可以进行take或put操作,并且blockingqueue提供了超时return null的机制,在很多生产场景里可以看到这个工具的身影. 1. 阅读全文
posted @ 2020-11-05 17:56 vvning 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一、synchronized原理详解 1. 设计同步器的意义 多线程可能会同时访问一个共享、可变的资源,这个资源称之为临界资源,需要同步机制来协同对象可变状态的访问,同步器的本质就是加锁,即同一时刻只能有同一个线程访问临界资源,也称为同步互斥访问 sychronized内置锁是一种对象锁(锁的是对象 阅读全文
posted @ 2020-11-05 14:48 vvning 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 一、基础概念 1、什么是进程?什么是线程? 进程是os调度的最小单元,比如启动一个java程序就会创建一个进程,线程是cpu调度的最小单元,一个进程可以创建很多个线程,这些线程有各自的计数器、堆栈、局部变量等属性。 2、什么是JMM模型? java内存模型(Java Memory Model),并不 阅读全文
posted @ 2020-11-04 17:02 vvning 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 一、索引的底层数据结构与算法 1、什么是索引? 索引是帮助MySQL高效获取数据的排好序的数据结构。 2、索引的数据结构 B+Tree(B-Tree变种) 非叶子节点不存储data,只存储索引(冗余),可以放更多的索引 叶子节点包含所有索引字段 叶子节点用指针连接,提高区间访问的性能 MyISAM索 阅读全文
posted @ 2020-10-10 23:19 vvning 阅读(1426) 评论(0) 推荐(0) 编辑
摘要: 给jdk自带的jvisualvm安装Visual GC插件,遇到We're sorry the java.net site has closed(我们很抱歉java.net网站已经关闭) 1、找到新的更新地址visualvm新访问地址:https://visualvm.github.io/index 阅读全文
posted @ 2020-10-09 11:13 vvning 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 一、JVM类加载机制 1、类加载过程 当我们用java命令加载某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。 具体步骤:1、调用底层的jvm.dll创建java虚拟机(C++) 2、创建一个引导类加载器(C++) 3、C++调用java代码创建JVM启动器实例com.mis 阅读全文
posted @ 2020-10-08 22:57 vvning 阅读(1199) 评论(0) 推荐(0) 编辑
摘要: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.sdk.activity. 阅读全文
posted @ 2018-10-24 21:28 vvning 阅读(662) 评论(0) 推荐(0) 编辑