HR:请谈谈Hibernate悲观锁和乐观锁的原理和应用场景? (ps:虽然现在很多企业都在用mybatis代替hibernate,但hibernate还是有一定地位的,此文仅供吐槽。吐吧。。。。) 锁 业务逻辑的实现过…
分类:java并发
Java多线程系列 JUC线程池02 线程池原理解析(一)
转载 http://www.cnblogs.com/skywang12345/p/3509960.html ; http://www.cnblogs.com/skywang123…
JAVA设计方法思考之如何实现一个方法执行完毕后自动执行下一个方法
今天编程时,突然想起来在一些异步操作或Android原生库的时候,需要我们实现一些方法, 这些方法只需要我们具体实现,然后他们会在适当的时候,自动被调用! 例如AsyncTask,执行玩doInBackground()后…
Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代
继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog. 1、Timer管理延时任务的缺陷 a、以前在项目中也经常使用定时器,比如每隔一段时间清…
Java并发编程札记-(三)JUC原子类-02原子方式更新单个变量
今天学习AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference,这几个类的共同特点是都提供单个变量的原子方式访问和更新功能。下面以AtomicLong为代表,对这些类…
java实现死锁
死锁 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。在多线…
JAVA并发之AQS概述
一、前言 自从看了《java并发编程实战后》,被用来构建锁以及同步工具的框架AQS在我心中是一个很厉害的东西,juc包下的很多工具类都是依靠AQS实现的,比如CountDownLatch、Reentra…
Java-JUC(八):使用wait,notify|notifyAll完成生产者消费者通信,虚假唤醒(Spurious Wakeups)问题出现场景,及问题解决方案。
模拟通过线程实现消费者和订阅者模式: 首先,定义一个店员:店员包含进货、卖货方法;其次,定义一个生产者,生产者负责给店员生产产品;再者,定义一个消费者,消费者负责从店员那里消费产品。 店员: /** * 店员 */ cl…
java.util.concurrent(JUC)的研究--》atomic原子操作--》CAS操作
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。 锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。…
Java总结篇系列:Java泛型
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args)…
ExecutorCompletionService
java.util.concurrent 类 ExecutorCompletionService<V> java.lang.Object 继承者 java.util…
Java 多线程(2)-Executor
public interface Executor{ void executor(Runnable command); } 如上所写,Executor实际上是一个接口,他提供了唯一的接口方法executor(Runnab…