03 2020 档案

摘要:Java并发包下锁学习第二篇队列同步器 还记得在第一篇文章中,讲到的locks包下的类结果图吗?如下图: ​ 从图中,我们可以看到AbstractQueuedSynchronizer这个类很重要(在本文中,凯哥就用AQS来代替这个类)。我们先来了解这个类。对这个类了解之后,学习后面的会更容易了。 本 阅读全文
posted @ 2020-03-31 11:26 kaizi1992 阅读(194) 评论(0) 推荐(0) 编辑
摘要:Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁。从今天起,凯哥将带领大家一起豪华参观(详细讲解)在Java并发包(JUC)下locks包下的体系结构。 在这个系列中,我们将会 阅读全文
posted @ 2020-03-30 10:18 kaizi1992 阅读(167) 评论(0) 推荐(0) 编辑
摘要:Java并发编程之-set集合的线程安全类 Java中set集合怎么保证线程安全,这种方式你知道吗? 在Java中set集合是 本篇是《凯哥(凯哥Java:kagejava)并发编程学习》系列之《并发集合系列》教程的第二篇: 本文主要内容:Set集合子类底层分别是什么?基于底层为什么set的子类可以 阅读全文
posted @ 2020-03-29 10:13 kaizi1992 阅读(8956) 评论(0) 推荐(1) 编辑
摘要:Java并发编程之-list集合的并发. 我们都知道Java集合类中的arrayList是线程不安全的。那么怎么证明是线程不安全的呢?怎么解决在并发环境下使用安全的list集合类呢? 本篇是《凯哥(凯哥Java:kagejava)并发编程学习》系列之《并发集合系列》教程的第一篇: 本文主要内容:怎么 阅读全文
posted @ 2020-03-28 09:58 kaizi1992 阅读(5008) 评论(0) 推荐(0) 编辑
摘要:Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理。那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是《凯哥(凯哥Java:kagejava)并发编程学习》系列之《CAS系列》教程的第三篇:CAS的缺点有哪些?怎 阅读全文
posted @ 2020-03-27 21:38 kaizi1992 阅读(800) 评论(0) 推荐(0) 编辑
摘要:Java并发编程之CAS二源码追根溯源 在上一篇文章中,我们知道了什么是CAS以及CAS的执行流程,在本篇文章中,我们将跟着源码一步一步的查看CAS最底层实现原理。 本篇是《凯哥(凯哥Java:kagejava)并发编程学习》系列之《CAS系列》教程的第二篇:从源码追根溯源查看CAS最底层是怎么实现 阅读全文
posted @ 2020-03-25 22:46 kaizi1992 阅读(343) 评论(0) 推荐(0) 编辑
摘要:Java并发编程之CAS第一篇-什么是CAS 通过前面几篇的学习,我们对并发编程两个高频知识点了解了其中的一个—volatitl。从这一篇文章开始,我们将要学习另一个知识点—CAS.本篇是《凯哥并发编程学习》系列之《CAS系列》教程的第一篇:什么是CAS。 本文主要内容: 生活中举例;CAS定义;C 阅读全文
posted @ 2020-03-24 10:36 kaizi1992 阅读(444) 评论(0) 推荐(0) 编辑
摘要:Java并发编程之验证volatile指令重排-理论篇 Java并发包下的类中大量使用了volatile关键字。通过之前文章介绍,大家已经知道了volatile的三大特性:共享变量可见性;不保证原子性;禁止指令重排后顺序性。通过前面两篇文章我们通过代码验证了前两个特性,本文我们就来验证禁止指令重排保 阅读全文
posted @ 2020-03-23 12:51 kaizi1992 阅读(477) 评论(0) 推荐(0) 编辑
摘要:大家都知道其实爱奇艺和某度就是一家的,最新的万能联播版本,加入了很多功能,感觉很不错。最最最主要是支持百度云不限速下载,百度网盘干什么用的就不用多解释了。资源确实丰富,但是难免有时候要下载一些文件资料,尤其是比较大的文件,百度网盘客户端的下载速度可真是不咋地。。你当然可以选择充值百度超级会员,不过凯 阅读全文
posted @ 2020-03-22 09:53 kaizi1992 阅读(1511) 评论(0) 推荐(0) 编辑
摘要:Java并发编程之验证volatile不能保证原子性 通过系列文章的学习,凯哥已经介绍了volatile的三大特性。1:保证可见性 2:不保证原子性 3:保证顺序。那么怎么来验证可见性呢?本文凯哥(凯哥Java:kaigejava)将通过代码演示来证明为什么说volatile不能够保证共享变量的原子 阅读全文
posted @ 2020-03-22 09:10 kaizi1992 阅读(560) 评论(0) 推荐(0) 编辑
摘要:Java并发编程之验证volatile的可见性 通过系列文章的学习,凯哥已经介绍了volatile的三大特性。1:保证可见性 2:不保证原子性 3:保证顺序。那么怎么来验证可见性呢?本文凯哥将通过代码演示来证明volatile的可见性。 前期准备: 共享变量 number 初始值是0,然后修改后的值 阅读全文
posted @ 2020-03-21 09:55 kaizi1992 阅读(298) 评论(0) 推荐(0) 编辑
摘要:Java并发编程学习前期知识下篇 通过上一篇《Java并发编程学习前期知识上篇》我们知道了在Java并发中的可见性是什么?volatile的定义以及JMM的定义。我们先来看看几个大厂真实的面试题: 编辑 ​ 编辑 ​ 编辑 ​ 从上面几个真实的面试问题来看,我们可以看到大厂的面试都会问到并发相关的问 阅读全文
posted @ 2020-03-20 09:53 kaizi1992 阅读(155) 评论(0) 推荐(1) 编辑
摘要:Java并发编程学习前期知识上篇 我们先来看看几个大厂真实的面试题: 从上面几个真实的面试问题来看,我们可以看到大厂的面试都会问到并发相关的问题。所以 Java并发,这个无论是面试还是在工作中,并发都是会遇到的。Java并发包JUC(java.util.concurrent)有了解过哪些?并发包实现 阅读全文
posted @ 2020-03-19 09:22 kaizi1992 阅读(160) 评论(0) 推荐(0) 编辑
摘要:从火箭发场景来学习Java多线程并发闭锁对象 倒计时器场景 在我们开发过程中,有时候会使用到倒计时计数器。最简单的是:int size = 5; 执行后,size—这种方式来实现。但是在多线程并发的情况下,这种操作会不安全的。举个现实中最典型的一个例子:火箭发射的案例。 大家都看过火箭发射的直播吧。 阅读全文
posted @ 2020-03-18 09:52 kaizi1992 阅读(308) 评论(0) 推荐(1) 编辑
摘要:Java多线程并发编程中并发容器第二篇之List的并发类讲解 概述 本文我们将详细讲解list对应的并发容器以及用代码来测试ArrayList、vector以及CopyOnWriteArrayList在100个线程向list中添加1000个数据后的比较 本文是《凯哥分享Java并发编程之J.U.C包 阅读全文
posted @ 2020-03-17 10:40 kaizi1992 阅读(320) 评论(0) 推荐(0) 编辑
摘要:Java多线程并发之同步容器和并发容器-第一篇 概述 本文主要讲解在Java多线程并发开发中,集合中有哪些支持并发的的。什么是同步容器(集合),什么是并发容器(集合)?并发容器分类有哪些?每个分类都有哪些类? 本文是《凯哥分享Java并发编程之J.U.C包讲解》系列教程中的第五篇。如果想系统学习,凯 阅读全文
posted @ 2020-03-16 10:21 kaizi1992 阅读(215) 评论(0) 推荐(0) 编辑
摘要:Java并发之原子变量及CAS算法-下篇 概述 本文主要讲在Java并发编程的时候,如果保证变量的原子性,在JDK提供的类中是怎么保证变量原子性的呢?。对应Java中的包是:java.util.concurrent.atomic包下。因为涉及到了CAS算法,需要对CAS算法讲解及CAS算法三个问题怎 阅读全文
posted @ 2020-03-15 10:07 kaizi1992 阅读(155) 评论(0) 推荐(0) 编辑
摘要:Java并发之原子变量及CAS算法-上篇 概述 本文主要讲在Java并发编程的时候,如果保证变量的原子性,在JDK提供的类中式怎么保证变量原子性的呢?。对应Java中的包是:java.util.concurrent.atomic包下。因为涉及到了CAS算法,需要对CAS算法讲解及CAS算法三个问题怎 阅读全文
posted @ 2020-03-14 10:43 kaizi1992 阅读(195) 评论(0) 推荐(0) 编辑
摘要:Java并发之volatile关键字内存可见性问题 线程之间数据共享案例 我们先来看一个场景: Main函数启动后,调用一个线程向list中添加数据。List的size为5的时候,设置变量flag为true.然后,主线程根据flag的值进行其他操作。 代码如下: 编辑 ​ 运行结果: 编辑 ​ 我们 阅读全文
posted @ 2020-03-12 09:56 kaizi1992 阅读(215) 评论(0) 推荐(0) 编辑
摘要:Java 实现线程的方式有几种方式?带有返回值的线程怎么实现? 在Java线程开发中,有几种方法开启线程?假如需要得到线程返回的信息怎么办?可以实现吗?凯哥将通过源码和大家一起分享下线程怎么将返回值带回来的。 一:无返回值类型的 1:继承Thread类 2:实现Runnable接口 这两种是大家常用 阅读全文
posted @ 2020-03-11 15:04 kaizi1992 阅读(421) 评论(0) 推荐(0) 编辑
摘要:ElasticSearch-hard插件及IK分词器安装 编辑 ​ 通过上一篇学习,我们学会了ElasticSearch的安装及访问到了如下页面: 编辑 ​ ElasticSearch-head插件安装 为什么需要安装head插件 返回的都是JSON格式的。不方便查看。如果有页面可以查看就更好了。有 阅读全文
posted @ 2020-03-09 10:41 kaizi1992 阅读(251) 评论(0) 推荐(0) 编辑
摘要:elasticsearch单机版安装及安装过程踩的坑整理 环境及版本 Linux版本:centos7.3 JDK版本:1.8 Elasticsearch版本: Linux用户:esuser 说明:因为es不能使用root用户安装,所以我们需要创建新用户:esuser. 本文中软件: 编辑 ​ 编辑 阅读全文
posted @ 2020-03-06 10:59 kaizi1992 阅读(267) 评论(0) 推荐(0) 编辑