摘要:java高并发系列 java高并发系列 第1天:必须知道的几个概念 java高并发系列 第2天:并发级别 java高并发系列 第3天:有关并行的两个重要定律 java高并发系列 第4天:JMM相关的一些概念 java高并发系列 第5天:深入理解进程和线程 java高并发系列 第6天:线程的基本操作 阅读全文
posted @ 2019-07-26 09:32 路人甲Java 阅读 (273) 评论 (1) 编辑
摘要:包含了深入理解Java虚拟机笔记、java命令行工具系列、java可视化工具系列,共31篇文章。 阅读全文
posted @ 2019-06-04 14:24 路人甲Java 阅读 (294) 评论 (0) 编辑
摘要:java开发,月薪3万,实现也不算是太难,需要花一些时间掌握一些技术,了解其原理,高薪就是顺其自然的事情了。 学java技术,最好能按照系列一个个学,能有一套非常好的学习资料,反复看,最终效果都是非常好的。尽量避免看很多套教程、每套只看其中一点,很难做到对技术的深入了解。 自己整理了一套java学习的教程,课程前后是有依赖的,所以请按顺序学习掌握,废话不多说了,直接上干货。 阅读全文
posted @ 2019-05-10 13:43 路人甲Java 阅读 (487) 评论 (5) 编辑
摘要:1. 概述 java爬虫系列包含哪些内容? 1. java爬虫框架webmgic入门 2. 使用webmgic爬取 http://ady01.com 中的电影资源(动作电影列表页、电影下载地址等信息) 3. 使用webmgic爬取 极客时间 的课程资源(文章系列课程 和 视频系列的课程) 本篇文章主 阅读全文
posted @ 2019-04-21 11:41 路人甲Java 阅读 (290) 评论 (2) 编辑
摘要:这是java高并发系列第29篇。 环境:jdk1.8。 本文内容 1. 介绍常见的限流算法 2. 通过控制最大并发数来进行限流 3. 通过漏桶算法来进行限流 4. 通过令牌桶算法来进行限流 5. 限流工具类RateLimiter 常见的限流的场景 1. 秒杀活动,数量有限,访问量巨大,为了防止系统宕 阅读全文
posted @ 2019-08-20 16:23 路人甲Java 阅读 (290) 评论 (2) 编辑
摘要:这是java高并发系列第28篇文章。 环境:jdk1.8。 本文内容 1. 日志有什么用? 2. 日志存在的痛点? 3. 构建日志系统 日志有什么用? 1. 系统出现故障的时候,可以通过日志信息快速定位问题,修复bug,恢复业务 2. 提取有用数据,做数据分析使用 本文主要讨论通过日志来快速定位并解 阅读全文
posted @ 2019-08-19 16:07 路人甲Java 阅读 (209) 评论 (0) 编辑
摘要:这是java高并发系列第26篇文章。 环境:jdk1.8。 本文内容 1. 了解JUC常见集合,学会使用 3. ConcurrentHashMap 4. ConcurrentSkipListMap 5. ConcurrentSkipListSet 6. CopyOnWriteArraySet 7. 阅读全文
posted @ 2019-08-16 15:10 路人甲Java 阅读 (27) 评论 (0) 编辑
摘要:这是java高并发系列第27篇文章。 开发环境:jdk1.8。 案例讲解 电商app都有用过吧,商品详情页,需要给他们提供一个接口获取商品相关信息: 1. 商品基本信息(名称、价格、库存、会员价格等) 2. 商品图片列表 3. 商品描述信息(描述信息一般是由富文本编辑的大文本信息) 数据库中我们用了 阅读全文
posted @ 2019-08-16 15:09 路人甲Java 阅读 (355) 评论 (2) 编辑
摘要:这是java高并发系列第25篇文章。 环境:jdk1.8。 本文内容 1. 掌握Queue、BlockingQueue接口中常用的方法 2. 介绍6中阻塞队列,及相关场景示例 3. 重点掌握4种常用的阻塞队列 Queue接口 队列是一种先进先出(FIFO)的数据结构,java中用 接口来表示队列。 阅读全文
posted @ 2019-08-15 16:26 路人甲Java 阅读 (186) 评论 (0) 编辑
摘要:java高并发系列第24篇文章。 环境:jdk1.8。 本文内容 1. 需要解决的问题 2. 介绍ThreadLocal 3. 介绍InheritableThreadLocal 需要解决的问题 我们还是以解决问题的方式来引出 、`InheritableThreadLocal`,这样印象会深刻一些。 阅读全文
posted @ 2019-08-13 14:49 路人甲Java 阅读 (377) 评论 (1) 编辑
摘要:这是java高并发系列第23篇文章,环境:jdk1.8。 本文主要内容 1. JUC中的原子类介绍 2. 介绍基本类型原子类 3. 介绍数组类型原子类 4. 介绍引用类型原子类 5. 介绍对象属性修改相关原子类 预备知识 JUC中的原子类都是都是依靠 volatile 、 CAS 、 Unsafe 阅读全文
posted @ 2019-08-07 15:13 路人甲Java 阅读 (310) 评论 (0) 编辑
摘要:这是java高并发系列第22篇文章,文章基于jdk1.8环境。 本文主要内容 1. 基本介绍 2. 通过反射获取Unsafe实例 3. Unsafe中的CAS操作 4. Unsafe中原子操作相关方法介绍 5. Unsafe中线程调度相关方法 6. park和unpark示例 7. Unsafe锁示 阅读全文
posted @ 2019-08-06 14:51 路人甲Java 阅读 (336) 评论 (0) 编辑
摘要:这是java高并发系列第21篇文章。 本文主要内容 1. 从网站计数器实现中一步步引出CAS操作 2. 介绍java中的CAS及CAS可能存在的问题 3. 悲观锁和乐观锁的一些介绍及数据库乐观锁的一个常见示例 4. 使用java中的原子操作实现网站计数器功能 我们需要解决的问题 需求:我们开发了一个 阅读全文
posted @ 2019-08-05 15:00 路人甲Java 阅读 (239) 评论 (0) 编辑
摘要:这是java高并发系列第20篇文章。 本文内容 1. ExecutorCompletionService出现的背景 2. 介绍CompletionService接口及常用的方法 3. 介绍ExecutorCompletionService类及其原理 4. 示例:执行一批任务,然后消费执行结果 5. 阅读全文
posted @ 2019-08-02 09:08 路人甲Java 阅读 (98) 评论 (0) 编辑
摘要:这是java高并发系列第19篇文章。 本文主要内容 1. 介绍Executor框架相关内容 2. 介绍Executor 3. 介绍ExecutorService 4. 介绍线程池ThreadPoolExecutor及案例 5. 介绍定时器ScheduledExecutorService及案例 6. 阅读全文
posted @ 2019-08-01 09:17 路人甲Java 阅读 (238) 评论 (1) 编辑
摘要:本文主要内容 1. 什么是线程池 2. 线程池实现原理 3. 线程池中常见的各种队列 4. 自定义线程创建的工厂 5. 常见的饱和策略 6. 自定义饱和策略 7. 线程池中两种关闭方法有何不同 8. 扩展线程池 9. 合理地配置线程池 10. 线程池中线程数量的配置 阅读全文
posted @ 2019-07-29 08:59 路人甲Java 阅读 (1700) 评论 (5) 编辑
摘要:java高并发系列 java高并发系列 第1天:必须知道的几个概念 java高并发系列 第2天:并发级别 java高并发系列 第3天:有关并行的两个重要定律 java高并发系列 第4天:JMM相关的一些概念 java高并发系列 第5天:深入理解进程和线程 java高并发系列 第6天:线程的基本操作 阅读全文
posted @ 2019-07-26 09:32 路人甲Java 阅读 (273) 评论 (1) 编辑
摘要:这是java高并发系列第17篇。 本文主要内容: 1. 介绍CyclicBarrier 2. 6个示例介绍CyclicBarrier的使用 3. 对比CyclicBarrier和CountDownLatch CyclicBarrier简介 CyclicBarrier通常称为循环屏障。它和CountD 阅读全文
posted @ 2019-07-25 09:20 路人甲Java 阅读 (301) 评论 (0) 编辑
摘要:这是java高并发系列第16篇文章。 本篇内容 1. 介绍CountDownLatch及使用场景 2. 提供几个示例介绍CountDownLatch的使用 3. 手写一个并行处理任务的工具类 假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一 阅读全文
posted @ 2019-07-22 15:08 路人甲Java 阅读 (272) 评论 (0) 编辑
摘要:这是java高并发系列第15篇文章 Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized和重入锁ReentrantLock,这2种锁一次都只能允许一个线程访问一个资源,而信号量可以控制有多少个线程可以 同时访问 特定的资源。 Semaphor 阅读全文
posted @ 2019-07-22 09:02 路人甲Java 阅读 (258) 评论 (0) 编辑
摘要:这是java高并发系列第14篇文章。 本文主要内容: 1. 讲解3种让线程等待和唤醒的方法,每种方法配合具体的示例 2. 介绍LockSupport主要用法 3. 对比3种方式,了解他们之间的区别 LockSupport 位于 java.util.concurrent ( 简称juc )包中,算是j 阅读全文
posted @ 2019-07-20 17:17 路人甲Java 阅读 (210) 评论 (1) 编辑
摘要:本文目标: 1. synchronized中实现线程等待和唤醒 2. Condition简介及常用方法介绍及相关示例 3. 使用Condition实现生产者消费者 4. 使用Condition实现同步阻塞队列 Object对象中的wait(),notify()方法,用于线程等待和唤醒等待中的线程,大 阅读全文
posted @ 2019-07-20 17:14 路人甲Java 阅读 (89) 评论 (0) 编辑
摘要:java高并发系列 第12天JUC:ReentrantLock重入锁 本篇文章开始将juc中常用的一些类,估计会有十来篇。 synchronized的局限性 synchronized是java内置的关键字,它提供了一种独占的加锁方式。synchronized的获取和释放锁由jvm实现,用户不需要显示 阅读全文
posted @ 2019-07-17 19:17 路人甲Java 阅读 (377) 评论 (4) 编辑
摘要:java高并发系列第11篇文章。 本文主要探讨一下中断线程的几种方式。 通过一个变量控制线程中断 代码: 代码中启动了一个线程,线程的run方法中有个死循环,内部通过exit变量的值来控制是否退出。 让主线程休眠3秒,此处为什么使用TimeUnit?TimeUnit使用更方便一些,能够很清晰的控制休 阅读全文
posted @ 2019-07-17 09:55 路人甲Java 阅读 (109) 评论 (0) 编辑