1、LockSupport的park和unpark方法的基本使用,以及对线程中断的响应性 LockSupport是JDK中比较底层的类,用来创建锁和其他同步工具类的基本线程阻塞原语。java锁和同步器框架的核心AQS:A…
分类:java并发
Java 下实现锁无关数据结构--转载
介绍 通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占…
JAVA乐观锁、悲观锁实现
一、名词解释 1、悲观锁:认为每次对数据库的操作(查询、修改)都是不安全的,因此每次操作都会把这条数据锁掉,直到本次操作完毕释放该锁 2、乐观锁:查询数据的时候总是认为是安全的,不会锁数据;等到更新数据的时候会判…
java 性能检测工具 检测死锁等
死锁检测方法 1 JConsole 找到需要查看的进程,打开线程选项卡,点击检测死锁 2 jps查看java进程ID,使用jstack 7412输出信息 3 使用jvisualvm连接java虚拟机,查看线程…
关于java web项目并发锁的理解
关于分布式锁的几种常用选择和方案,小弟不才,希望和大家讨论讨论。 1.当数据库单一的时候,利用数据库的锁机制。 主要分为两种,一种是悲观锁,悲观锁里又分共享锁和排他锁,个人觉得共享锁在并发上做的更好一点,毕竟代码可以一直…
Java中的自旋锁
自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。 获取锁的线程一直处于活跃状态,但是并没…
Java设计模式---单例模式(双锁机制的弊端)
http://ranji13-163-com.iteye.com/blog/902155 一、饿汉模式 饿汉模式代码 /** * @ClassName…
java并发编程知识点备忘
最近有在回顾这方面的知识,稍微进行一些整理和归纳防止看了就忘记. 会随着进度不断更新内容,比较零散但尽量做的覆盖广一点. 如有错误烦请指正~ java线程状态图 线程活跃性问题 死锁 饥饿 活锁 饥饿原因: 高优先级造成…
Java 并发:Executor
异常捕获 以前使用executor的时候,为了记录任务线程的异常退出会使用ThreadFactory来设置线程的UncaughtExceptionHandler,但是按照书上的验证发现,采用executor…
java 发送邮件
package cn.knet.data.untils.mail; import java.util.List; public class MailBean { /** * 收件人 */ private List<…
读Java Concurrency in Practice. 第六章.
这一章开讲任务执行。绝大多数并发程序的工作都可以分解为抽象的、互不相关的工作单元,称之为任务(Task)。 使用java线程来执行任务 以web服务器的实现举例, 此时将用户的一次连接,当做一个独立的任务。 单线程顺序执…
Spring @Async的异常处理
楼主在前面的2篇文章中,分别介绍了Java子线程中通用的异常处理,以及Spring web应用中的异常处理。链接如下: Java子线程中的异常处理(通用) Spring web引用中的异常处理 今天,要写的是被Sprin…