
并发编程
买菜做饭
这个作者很懒,什么都没留下…
展开
-
synchronized 关键字详解
Synchronized关键字synchronized是Java提供的内部锁,里边有类锁和对象锁。synchronized关键字能够用于编辑4种不同类型的块:实例方法 静态方法 实例方法中的代码块 静态方法中的代码块这些块被同步在不同的对象上。使用哪一种synchronized块是取决于实际情况。同步的实例方法synchronized关键字修饰在实例方法上,则该方法就...原创 2019-11-08 11:38:39 · 222 阅读 · 0 评论 -
ReentrantReadWriteLock显示锁的使用和分析
使用读/写锁的方法和步骤: 创建一个ReentrantReadWriteLock对象private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();分别获得读取锁和写入锁private Lock readLock = rwl.readLock();private Lock writeLock = r原创 2016-06-19 16:27:55 · 422 阅读 · 0 评论 -
AbstractQueuedSynchronizer的介绍和原理分析
装载自http://ifeve.com/,本文链接地址http://ifeve.com/introduce-abstractqueuedsynchronizer/简介提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并转载 2016-07-01 15:58:14 · 307 阅读 · 0 评论 -
Java多生产者多消费者实现
看了毕老师关于多生产者多消费者的视频,自己就试着写一个多生产者多消费者的程序,跟大家分享,希望对需要的人有所帮助。package interview;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent原创 2015-09-16 10:12:57 · 954 阅读 · 0 评论 -
通过银行转账问题解说死锁解决方案
大家都知道,在并发情况下对两个账户进行转账操作可能会产生死锁,可能出现死锁的原因是,并发情况下对两个账户的操作无法保证其执行顺序。1. 并发问题描述假如现在执行下面的操:线程一执行的是:【账户A】给【账户B】转账线程二执行的是:【账户B】给【账户A】转账如果两个转账动作同时执行,则会出现线程一会请求对【账户B】进行加锁,线程二会请求对【账户A】进行加锁由于此时的【账户A】已...原创 2020-02-19 17:55:09 · 3163 阅读 · 0 评论