笔筒虫
笔筒虫
全部文章
分类
Java多线程&并发(13)
Java常用类库(5)
Java常识(6)
Java虚拟机(6)
MySQL数据库(7)
《深入理解Java虚拟机》读书小册(8)
《深入理解Java虚拟机》读书笔记(7)
剑指offer题解(13)
未归档(65)
算法基础(5)
计算机操作系统(3)
计算机网络(6)
通过UML和小DEMO学习设计模式(10)
归档
标签
去牛客网
登录
/
注册
笔筒虫的博客
全部文章
(共154篇)
问十七: synchronized与lock的区别是什么?
1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类; 2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁; 3.synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁...
2019-05-02
0
485
问十六:synchronized与volatile的区别?
1)volatile本质是告诉JVM当前变量在寄存器中的值是不确定的,需要从主存中读取,不会造成线程阻塞。synchronized则是锁定当前变量,只有当前线程可以访问该变量,其它线程被阻塞。 2)volatile仅能使用在变量级别,synchronized则可以使用在变量、方法。 3)vola...
2019-05-02
0
461
问十五:说说你了解的volatile?
volatile作用,实现原理,运用场景: ①作用:volatile只能保证多线程三大特性中的可见性和有序性。 1)可见性:每个线程都有一个自己的本地内存,对于共享变量,线程每次读取和写入的都是共享变量在本地内存中的副本,然后在某个时间点将本地内存和主内存的值进行同步。而当修改volatile修...
2019-05-02
0
566
问十四:说说synchronized的膨胀方向?
synchronized的四种状态 无锁、偏向锁、轻量级锁、重量级锁 锁膨胀方向:无锁→偏向锁→轻量级锁→重量级锁 偏向锁:减少同一线程获取锁的代价 多数情况下,锁不存在多线程竞争,总是由同一线程获得 如果一个线程获得了锁,那么锁就进入偏向模式,此时Mark Word的结构就变成了偏...
2019-05-02
0
664
问十三:synchronized底层实现是什么样的?
早期synchronized: Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,...
2019-05-02
0
0
问十二:说说你了解到的java线程池?
1.线程池优点 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分...
2019-05-02
0
620
问十一:sleep和wait的区别有哪些?
sleep与wait的区别 1. 这两个方法来自不同的类分别是Thread.wait()和Object.sleep() 2. sleep必须捕获异常,而wait不需要捕获异常 3. wait只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用 4. 最主要是Thread....
2019-05-02
0
509
问十:源码层面解析Thread中run()和start()的区别?
分析start()的源码: 调用start0()方法 是一个native方法 进入http://hg.openjdk.java.net/jdk8u源码页查看其native方法的源码 进入share目录,找到Thread.c 发现其调用了JVM_StartThread...
2019-05-01
0
570
问九:源码层面解析Thread.sleep()为什么需要抛异常?
导入: Thread.sleep()抛的是InterruptedException,这个错误在源码中的注释为: * Thrown when a thread is waiting, sleeping, or otherwise occupied, * and the thread is in...
2019-05-01
0
469
问八:InterruptedExcption详细分析?
当一个方法后面声明可能会抛出InterruptedException 异常时,说明该方法是可能会花一点时间,但是可以取消的方法 抛InterruptedException的代表方法有: 1. java.lang.Object 类的 wait 方法 2. java.lang.Thread ...
2019-05-01
0
460
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页