logo头像
Snippet 博客主题

Java并发中遇到的锁

在Java高并发编程中,会遇到各种锁,这里简单介绍一下各种锁的分类。涉及到了以下内容: ①公平锁/非公平锁 ②可重入锁 ③独享锁/共享锁 ④互斥锁/读写锁 ⑤乐观锁/悲观锁 ⑥分段锁 ⑦偏向锁/轻量级锁/重量级锁 ⑧自旋锁 上面是很多...

JVM运行时数据区域

JVM运行时数据区域

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域依赖用户线程的启动和结束而建立和销毁。 1.程序计数器程序...

关于多线程的锁优化

1.如何提供锁的性能1.1减小锁持有时间:对于使用锁进行并发控制的应用程序而言,在锁竞争的过程中,单个线程的持有时间与系统性能有着直接的关系。减少锁的持有时间有助于降低锁冲突的可能性,进而提高系统的并发能力。 1.2减小锁粒度:所谓减...

Java线程池浅析

Java线程池浅析

为了避免系统频繁地创建和销毁线程,我们可以让创建的线程进行复用,于是我们可以把创建的线程放入一个池子里管理起来,即线程池。在线程池中,总有那么几个活跃线程。当需要使用线程时,可以从池子中随便拿一个空闲线程,当完成工作时,并不急着关闭线...

JDK并发包

1.同步控制1.1重入锁重入锁使用java.util.concurrent.locks.ReentrantLock类来实现的,它完全可以替代synchronized关键字。与synchronized相比,重入锁有着显式的操作过程,开发...

Java多线程基础

Java多线程基础

1.基本特性1.1特性①原子性:原子性是指一个操作是不可中断的; ②可见性:可见性是指当一个线程修改了某一个共享变量的值,其他线程是否能够立即知道这个修改; ③有序性:即程序执行的顺序按照代码的先后顺序执行。 1.2指令重排在计算机执...

Spring IOC和DI简单理解

Spring IOC和DI简单理解

1.IOC是什么Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好IOC呢?理解...

最短路径(Shortest Path)

1.最短路径定义从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短路径。 2.dijkstra(单源最短路径算法)求单源、无负权的最短路。时效性较好,时间复杂度为O(VV+E)。源点可达的话,O(V...