转 http://blog.csdn.net/yanyan19880509/article/details/52345422 前言 相信学过java的人都知道 synchronized 这个关键词,也知道它用于…
分类:java并发
java线程基础巩固---如何实现一个自己的显式锁Lock
拋出synchronized问题: 对于一个方法上了同锁如果被一个线程占有了,而假如该线程长时间工作,那其它线程不就只能傻傻的等着,而且是无限的等这线程工作完成了才能执行自己的任务,这里来演示一下这种场景: 上面代码就是…
java结合redis实现分布式锁
今天工作之余,查看一下利用redis来实现分布式锁,因此,在查看别人文章之余,自己也来手动模拟实现Java的lock接口,来自己手动实现一个分布式锁。拥有简单的加锁,解锁,锁中断等操作。 利用redis的分布式锁,主要还…
JUC LongAdder DoubleAdder LongAccumulator DoubleAccumulator
上一篇博客讲解了java.util.concurrent包中的Striped64这个类,今天讲解LongAdder,DoubleAdder, LongAccumulator,DoubleAccumulator这四个类,如…
JUC代码浅析[5]——基于AQS的CountDownLatch
JUC代码浅析[5]——基于AQS的CountDownLatch CountDownLatch是一种使线程等待一组其他线程操作完成再开始的同步方式…
java多线程系列(七)---Callable、Future和FutureTask
Callable、Future和FutureTask 前言:如有不正确的地方,还望指正。 目录 认识cpu、核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 java…
JAVA实现的一个简单的死锁(附解释)
public class DeadLockTest implements Runnable{ private int flag; static Object o1 = new Object(), o2 = new Obj…
Java并发编程4 —— 对象锁的同步和异步
同步和异步 当访问共享资源时,我们为了保证线程安全,让每个线程在操作共享变量前读到的都是正确的值,必须同步地执行代码,即每个线程方法执行完毕后才能继续。 而异步则不需要等待其他线程的方法执行完毕,可以立刻执行,这里不涉及…
Java中并发问题整理
1. java中有几种方法可以实现一个线程? 使用Runnable,Callable,Thread或者线程池 2. 如何停止一个正在运行的线程? 可以使用正在运行的线程,支持线程中断,通常是定义一个volatile的状态…
JUC学习笔记(1)—ReentrantLock
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; class Ticket//资源类 类 =…
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer 作者:大飞 功能简介: AbstractQueuedSynchronizer(以下简称AQS)是Java…
运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接
最近在项目中可能要用到socket相关的东西来发送消息,所以初步研究了下socket的TCP和UDP实现方式,并且结合java1.5的concurrent.ExecutorService类来实现多线程。 具体实现方式见代…