- 博客(5)
- 资源 (6)
- 收藏
- 关注
原创 锁的状态(偏向锁,轻量级锁及重量级锁)
本篇博客参考了死磕Synchronized底层实现--概论如果有兴趣了解更深的内容可以看看上面博客。锁的状态锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁(但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级)。锁的状态保存在对象头的Mark Word中,以32位的JDK为例:(一)...
2019-06-28 21:48:02 1111
原创 死锁产生的原因和解决
死锁:死锁是指由于两个或多个线程互相持有对方的资源,导致这些线程处于等待状态,无法继续向下执行。死锁产生的原因:只有满足下面四个条件才会形成死锁,缺一不可1. 互斥条件:线程对于所分配到的资源具有排他性,即一个资源只能被一个线程持有,直到该线程释放。2. 请求和保持条件:一个线程在请求被占用资源时,不会释放自己的资源。3. 不剥夺条件:一个线程的资源只能由自己释放,其它线程无法...
2019-06-28 20:30:07 1457
原创 守护进程
(一)Daemon(守护进程)Daemon(守护进程)是运行在后台的一种特殊线程。它独立于终端并在后台周期性地执行任务或等待处理某些发生的事件,它不需要用户输入就能运行并且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器都是通过守护进程实现的,如系统日志进程syslogd,web服务器httpd,邮件服务器sendmail。Daemon独立于终端是为了避...
2019-06-25 22:55:27 1978
原创 IO模型及JAVA中的(B)IO/NIO/AIO
IO有内存IO、网络IO和磁盘IO三种,通常我们说的IO指的是后两者。网络IO的本质是socket的读取,socket在linux系统被抽象为流,IO可以理解为对流的操作。对于一次IO访问(以read举例)当一个read操作发生时,它会经历两个阶段:第一阶段:等待数据准备,数据从磁盘拷贝到内核空间 (Waiting for the data to be ready)。第二阶段:将数据从内核...
2019-06-23 21:22:42 594
原创 有序的Map集合
我们通常使用的Map集合是HashMap,在大多数情况下HashMap可以满足我们的要求,但是HashMap有一个缺点:HashMap是无序的,即其迭代顺序与其key或value的大小无关。而在某些情况下,如果我们需要Map集合里的元素有序,那么HashMap是不能满足我们的要求的。那么有没有有序的Map集合呢?有,Java提供了两种有序的Map集合:LinkedHashMap和TreeM...
2019-06-22 08:32:07 41480 1
mysql_数据类型
2017-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人