基本介绍 SynchronousQueue JUC阻塞队列的一种,队列无实际容量,一个put操作必须等待一个take操作的执行,才会解除阻塞状态。将put考虑为生产者的话,需要等待消费者,即take操作来取它的数据,才能…
分类:java并发
二分查找、二分边界查找算法的模板代码总结
前言 二分查找作为程序员的一项基本技能,是面试官最常使用来考察程序员基本素质的算法之一,也是解决很多查找类题目的常用方法,它可以达到O(log n)的时间复杂度。 一般而言,当一个题目出现以下特性时,你就应该立即联想到它…
Java中线程池,你真的会用吗?
在《深入源码分析Java线程池的实现原理》这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理。 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建议这样使用。 …
Java多线程——死锁
当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么他永远被阻塞,当线程A持有锁L并想获得锁M的同时,线程B持有锁M并同时尝试获得锁L时,那么两个线程将永远的等待下去,这中情况就是简单的死锁的形式,其中多…
关于java当中的多线程设计, wait/notify机制 , synchronized与对象锁
下面这遍文章讲得简洁易懂. —————————————̵…
转:【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17290021 在http://blog.csd…
Java锁是如何保证数据可见性的 (本文未经过技术多方验证,仅供留存)
引言 在 java.util.concurrent.locks.Lock 接口的Javadoc中有这样一段话: All Lock implementations must enforce the&nb…
【转】基于Redis Lua脚本实现的分布式锁(Java实现)
最近项目中需要用到一个分布式的锁,考虑到基于会话节点实现的zookeeper锁性能不够,于是想使用redis来实现一个分布式的锁。看了网上的几个实现方案后,发现都不够严谨。比如这篇:用Redis实现分布式锁里面设计的锁有…
Java并发多线程:JUC原子变量
java.util.concurrent.atomic包下提供了一些常用的原子操作的常用类 AtomicBoolean、AtomicInteger、AtomicLong、Atomi…
Android(Java)线程池:ExecutorService和Executors使用(二)
一、固定大小的线程池,newFixedThreadPool: package Executor.test; import java.util.concurrent.ExecutorService; import java…
java高级---->Thread之Exchanger的使用
Exchanger可以在两个线程之间交换数据,只能是2个线程,他不支持更多的线程之间互换数据。今天我们就通过实例来学习一下Exchanger的用法。 Exchanger的简单实例 Exchanger…
java基础知识精华
转载:https://www.jianshu.com/p/6c078abb720f java基础知识 java内存模型 java运行时数据区域 hashMap 如何解决冲突 存储方式 冲突达到一定数量改用红黑树存储等 C…