自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 多线程、高并发笔记(六):Lock显示锁

Lock显示锁​ 在jdk5中增加了 Lock锁接口,有ReentrantLock实现类,ReentrantLock锁称为可重入锁,功能要比synchronized多。锁的可重入性​ 锁的可重入性是指,当一个线程获得一个对象锁后,再次请求该对象锁时是可以获得该对象锁的。ReentrantLockReentrantLockd 的基本使用​ 调用lock()获得锁,调用unlock()释放锁lockInterruptibly()​

2021-03-08 16:00:35 285 3

原创 多线程、高并发笔记(五):线程间的通信

线程间的通信等待/通知机制什么是等待通知机制?在单线程的编程中,要执行的操作需要满足一定的条件下才能执行,可以把这个操作放在if语句块中。在多线程编程中,可能A线程的条件,没有满足只是暂时的,稍后其他的线程B可能更新条件使得A线程的条件得到满足。可以将A线程暂停,直到它的条件得到满足后再将A线程唤醒。等待/通知机制的实现​ Object类中的wait()方法可以使执行当前代码的线程等待,暂停执行,直到接到通知或被中断为止。//1.waitit()方法只能在同步代码块

2021-01-18 15:05:12 141 1

原创 多线程、高并发笔记(四):CAS

4. CASCAS(Compare And Swap)是由硬件实现的.可以将read modify write 这类的操作转换为原子操作。i++自增操作包括三个子操作: 从主内存读取i的变量值 加1 再把加一之后的值保存到主内存.原理在把数据更新到主内存时,再次读取主内存变量的值,如果现在变量的值与期望的值(操作起始时读 取的值)一样就更新.前提CAS实现原子操作的背后有一个假设:共享变量的当前值与当前线程提供的期望值相同,就认为这个变量没有被其他线程修改过。 实际上这种假设不一定成

2020-12-22 16:12:44 141

原创 多线程、高并发笔记(三):线程同步

3.线程同步线程同步机制是一套用于线程之间的数据访问的机制,该机制可以保障线程安全。Java平台提供的线程同步机制包括:锁,volatile关键字,final关键字,static关键字,以及相关的API锁概述线程安全问题的产生前提是多个线程并发访问共享数据。将多个线程对共享数据的并发访问转换为串行访问,即一个共享数据一次只能被一个线程访问。锁就是复用这种思路来保障线程安全的。锁可以理解为对共享数据保护的许可证。对于同一个许可证保护的共享数据来说,任何一个线程访问这些数据必须先持有该许可证的情

2020-12-22 13:59:26 170 2

原创 多线程、高并发笔记(二):线程安全问题

2.线程安全问题非线程安全主要是指多个线程对同一个对象的实例进行操作时,会出现被更改,值不同的情况。线程安全问题表现为三个方面:原子性、可见性、有序性原子性:不可分割的意思。原子操作的不可分割有两种含义:a、访问(读写)某个共享变量的操作从其他线程来看,要么执行完毕,要么尚未发生,即其他线程看不到当前操作的中间结果。b、访问同一组共享变量的原子操作时不能交错的java有两种方式实现原子性: 锁、CAS指令锁具有排他性,可以保证共享变量在某一时刻只能被一个线程访问CAS指令直接在硬件层次(

2020-12-22 13:59:08 155 1

原创 多线程、高并发笔记(一):线程概述

1.线程概述1.1线程的相关概念进程进程(Process)是计算件中程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位。可以把进程简单难度理解为正在操作系统中正在运行的一个程序。线程线程(thread)是进程的一个执行单元。一个线程就是进程中一个单一顺序的控制流,,进程的一个执行分支。进程是线程的容器,一个进程至少有一个进程。一个进程中也可以有多个线程。在操作系统中是以进程为单位分配资源,每个线程都有自己的线程栈,自己的寄存器环境,自己的线程本地

2020-12-22 13:58:34 77

原创 ElasticSearch原理总结

ES原理总结—ES写数据:ES里写的流程,有四个底层的核心概念:refresh、flush、translog、merge—ES读数据的过程查询—GET到某一条数据(1)可以通过 doc id 来查询,会根据 doc id 进行 hash,判断出来当时把 doc id 分配到了哪个 shard 上面去,从那个 shard 去查询。(2)客户端发送请求到任意一个 node,成为 coordinate node 。(3)coordinate node 对 doc id 进行哈希路由,将请求转发到对应

2020-12-10 13:19:21 267 1

原创 List排序

List排序基础类型List排序//对数字进行排序List<Integer> nums = Arrays.asList(3,1,5,2,9,8,4,10,6,7);nums.sort(Comparator.reverseOrder()); //reverseOrder倒序System.err.println("倒序:"+nums);nums.sort(Comparator.naturalOrder()); //naturalOrder自然排序即:正序System.err.prin

2020-12-10 11:53:14 579

原创 List集合取交集、并集、去除重复数据等

List集合取交集、并集、去除重复数据等1.先给出两个List集合List<String> listA = new ArrayList<String>();List<String> listB = new ArrayList<String>();listA.add("A");listA.add("B");listB.add("B");listB.add("C");2.取交集listA.retainAll(listB);System.out

2020-12-10 11:47:40 1560 1

原创 jdk 1.8 Lamda 表达式

Lamda 表达式1.分组List里面的对象元素,以某个属性来分组,例如,以id分组,将id相同的放在一起:Map<Integer,List<Apple>> groupBy = appleList .stream().collect(Collectors.groupingBy(Apple::getId));//多字段分组 Map<String, List<YourBean>> mapBy= list.stream().collect( Colle

2020-12-10 11:44:22 208

原创 centos安装docker环境

centos安装docker环境//前提:内核版本需要不小于3.10,不然docker起不来//查看当前内核版本$ uname -r //安装docker的依赖包$ yum install -y yum-utils lvm2 device-mapper-persistent-data//配置docker源$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo//可以查看

2020-12-10 11:35:29 79

原创 docker安装MySQL

docker安装MySQL//可以用 docker search mysql 命令来查看可用版本:$ docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relati... 2529

2020-12-10 11:34:01 66

原创 docker安装kafka

docker安装kafka//下载镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafkadocker pull sheepkiller/kafka-manager//启动zookeeperdocker run -d --name zookeeper --publish 2181:2181 \--volume /etc/localtime:/etc/localtime \--restart=always \wurstme

2020-12-10 11:33:27 96

原创 docker安装RabbitMQ

docker安装RabbitMQ//指定版本,该版本包含了web控制页面(默认最新版本)$ docker pull rabbitmq:latest//方式一:默认guest 用户,密码也是 guest$ docker run -d --hostname my-rabbit -p 5672:5672 -p 15672:15672 rabbitmq//#方式二:设置用户名和密码$ docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ

2020-12-10 11:32:20 62

原创 docker常用命令

docker常用命令//查看所有的容器$ docker ps -a//查看已经启动的容器$ docker ps //启动容器$ docker start <容器id>//重启容器$ docker restart <容器 ID>//停止容器$ docker stop <容器ID>//删除容器$ docker rm -f <容器ID>//后台运行$ docker run -itd --name ubuntu-test ubuntu /

2020-12-10 11:31:38 46

原创 HashMap

HashMap的put方法的具体流程?答:下面先来分析一下源码final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { HashMap.Node<K,V>[] tab; HashMap.Node<K,V> p; int n, i; // 1.如果table为空或者长度为0,即没有元素,那么使用resize()方法扩容 if (

2020-12-10 11:12:32 68

原创 LeetCode刷题题解笔记 数组(一) --3. 三数之和(java)

题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]解题思路:把数组转化为有...

2020-04-16 20:12:58 311

原创 LeetCode刷题题解笔记 数组(一) --2. 两数之和(输入有序数组)(java)

LeetCode刷题题解笔记(二) --两数之和(输入有序数组)题目给定一个已按照升序排列的有序数组,找到两个数使的他们相加之和等于目标数。函数应该返回这两个下标值index1和index2,其中index1必须小于index2.说明:返回的下标值不是从零开始的。可以假设每个输入只对应唯一的答案,而且不可以重复使用相同的元素。实例:输入:numbers = [2,7,11,15]...

2020-04-15 11:02:54 132

原创 LeetCode刷题题解笔记 数组(一) --1. 两数之和 (java)

LeetCode刷题题解(一)题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 ...

2020-04-14 20:46:21 154

原创 Linux安装mysql数据库

Linux安装mysql数据库执行命令:service mysqld start返回以下信息:启动 MySQL: [确定]数据库已经启动,跳过安装步骤。反之,请安装数据库。到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-ge...

2018-11-02 10:12:20 195

原创 Linux 安装tomcat

Linux 安装tomcat执行命令:# ps –ef|grep tomcat返回类似信息:502 19258 8770 0 7:14下午 ttys000 0:00.01 grep tomcat说明tomcat没有启动,开始安装tomcat。(如果系统已经安装tomcat,请直接进行下一项)(1)在百度搜索tomcat,看到第一条结果是带有Apache Tomcat -...

2018-11-02 10:07:49 71

原创 Linux安装jdk

Linux安装jdk示例:安装jdk1.7检查系统是否安装jdk执行命令:# java -version(如果没有安装jdk,请进行以下步骤进行安装)下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html(下载jdk需要orcale...

2018-11-02 09:56:48 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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