自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除