- 博客(10)
- 收藏
- 关注
原创 JUC源码阅读-ArrayBlockingQueue
ArrayBlockingQueue,是一个由数组实现的有界阻塞队列。该队列采用FIFO的原则对元素进行排序添加的。ArrayBlockingQueue为有界且固定,其大小在构造时由构造函数来决定,确认之后就不能再改变了。ArrayBlockingQueue支持对等待的生产者线程和使用者线程进行排序的可选公平策略,但是在默认情况下不保证线程公平的访问,在构造时可以选择公平策略(fair = t...
2019-08-28 23:25:09 188
原创 JUC并发工具-CyclicBarrier
CyclicBarrier是一个同步辅助工具类,它允许一组线程之间相互等待,直到到达某个公共屏障点 (common barrier point)。如果一个程序中有固定的线程数,并且线程之间需要相互等待,这时候CyclicBarrier是一个很好的选择。之所以叫它cyclic,是因为在释放等待线程之后,它可以被重用。重要成员属性//内部类 private static class ...
2019-08-26 22:20:41 262
原创 JUC并发工具-CountDownLatch
CountDownLatch是一个同步辅助类,通过AQS实现的一个闭锁。在其他线程完成它们的操作之前,允许一个多个线程等待。简单来说,CountDownLatch中有一个锁计数,在计数到达0之前,线程会一直等待。public class CountDownLatch { /** * Synchronization control For CountDownLatch. ...
2019-08-26 22:10:25 182
原创 JUC并发容器-ConcurrentHashMap
ConcurrentHashMap是在多线程情况下在线程安全的HashMap,它是一个高性能的线程安全的HashMap。在1.8版本以前,ConcurrentHashMap采用分段锁的概念,使锁更加细化,在jdk1.8以后,是利用CAS+Synchronized来保证并发更新的安全,底层采用数组+链表+红黑树的存储结构。本文基于1.8版本阅读ConcurrentHashMap源码。内部类C...
2019-08-25 21:24:17 226
原创 JUC源码阅读-ReentrantReadWriteLock
ReentrantReadWriteLock可重入读写锁,它实现了ReadWriteLock接口,从而实现了读服务可以由多个线程进入,写线程只有一个线程可以进入。ReentrantReadWriteLock中维护了一对锁,分别位一个读锁和一个写锁。通过读写分离提高了并发性。同一时间内,可以允许多个线程访问。 写线程访问时,所有的读线程和写线程都会被阻塞。注:本文以jdk ...
2019-08-25 16:43:06 245
原创 JUC源码阅读-ReentrantLock
ReentrantLock可重入锁,是一种递归无阻塞的同步机制。它可以等同与synchornized实现同步。并且提供了比synchornized更为灵活的加锁机制。ReentrantLock提供了公平锁FairSync和非公平锁NonfairSync两种机制。公平锁,锁的获取是有序的 非公平锁,获取锁不是有序的,但效率比公平锁高,在多线程下,吞吐量较高。ReentrantL...
2019-08-25 14:55:21 215
原创 JUC源码阅读-AbstractQueuedSynchronizer
AQS(AbstractQueuedSynchronizer)是JUC框架中最重要的类,通过它来实现独占锁和共享锁。本次阅读AbstractQueuedSynchronizer从一下四部分进行解析CLH队列即同步队列:储存着所有等待锁的线程 独占锁 共享锁 Condition条件注:阅读的jdk版本为1.8 CLH队列(线程同步队列) 在获取锁之前,没有获取到锁的...
2019-08-22 22:26:57 187
转载 linux常用命令
转自 http://www.cnblogs.com/laov/p/3541414.html常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p
2017-05-13 09:22:13 502
原创 CentOS7安装hadoop2.7.3
安装准备工作下载Hadoop以及jdk安装hadoop前必须安装jdk 安装方法http://blog.csdn.net/csdn_bay/article/details/70767421安装完jdk后,把下载好的hadoop解压到/opt/hadoop目录下修改hadoop配置文件,具体修改文件有5个 hadoop/etc/hadoop目录下core-site
2017-05-13 09:03:35 816
原创 centos7安装jdk
1. 下载jdk-8u131-linux-x64.tar.gz2. 查看系统是否已经安装有jdk版本,查看方法 java-version 3. 如果有已经安装的OpenJdk版本的话卸载掉rpm –qa | grep java 查询一个包是否被安装 关键字java把java相关的删除使用 rpm –e –nodeps +java相关名称。使用Tab
2017-04-25 21:15:18 385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人