ReentrantLock 是java继synchronized关键字之后新出的线程锁,今天看了看实现源码。主要是通过自旋来实现的。使用自旋的基本思路就是为所有的线程构建一个node,连成一个队列,然后每一个node都轮…
分类:java并发
java 使用Process调用exe程序 及 Process.waitFor() 死锁问题了解和解决
前言 最近在开发android的同时也在开发java ,碰到了需要使用java 程序调用exe的需求,这里我使用的 process 来调用的。该篇文章 读完需要8+分钟,文章类型为 小白入门类型,此处主要记录,方便以后学…
Redis Java客户端jedis工具类以及Redis实现的跨jvm的锁
Redis Java客户端jedis工具类以及Redis实现的跨jvm的锁 最近项目中使用redis,学习了一下,client端使用jedis-2.1.0 首先是一个redis实现的跨jvm的lock,&nb…
Java锁之自旋锁详解
锁作为并发共享数据,保证一致性的工具, 在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提…
javase(11)_juc并发库
一、传统线程技术 public static void main(String[] args) { Thread thread = new Thread(){ @Override public void run() { …
JUC之集合
常见的有哪些是线程不安全的? 1、集合类是不安全的:ArrayList,HashSet,HashMap等等都是不安全 2、i++, ++i 也是不安全 JUC什么? 1、juc是java.util.concurrent包…
Java并发编程札记-(四)JUC锁-04Condition简介
我们已经学习了如何通过使用锁来同步两个任务,但为了解决某个问题,任务之间只有互斥是不够的,还需要相互通信,相互协作。今天就来学习如何实现任务之间的协作。 初识Condition 在任务协作中,关键问题是任务之间的通信。握…
Java显式锁学习总结之六:Condition源码分析
概述 先来回顾一下java中的等待/通知机制 我们有时会遇到这样的场景:线程A执行到某个点的时候,因为某个条件condition不满足,需要线程A暂停;等到线程B修改了条件condition,使condition满足了线…
java 同步中的线程出现异常会放弃锁吗
http://zhidao.baidu.com/question/374619544.html 实验证明:会 下面代码r1会抛出异常,但是r2仍能拿到o对象的锁 public class Test { public st…
JUC-CountDownLatch
CountDownLatch:闭锁 它被用来同步一个或多个任务,强制它们等待由其他任务执行的一组操作完成。 你可以向CountDownLatch对象设置一个初始计数值,任何在这个对象上调用wait()的方法都…
java定时任务接口ScheduledExecutorService
一、ScheduledExecutorService 设计思想 ScheduledExecutorService,是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互…
Java多线程之Executor、ExecutorService、Executors、Callable、Future与FutureTask
1. 引子 初学Java多线程,常使用Thread与Runnable创建、启动线程。如下例: Thread t1 = new Thread(new Runnable() { @Override public void r…