标签:queue

Java

Java并发——ScheduledThreadPoolExecutor分析

1

puefu.he 发布于 2018-12-19

从图中我们可以看到ScheduledThreadPoolExecutor继承ThreadPoolExecutor实现了ScheduledExecutorService接口。它相当于提供了"延迟"和"周期执行"功能的ThreadPoolExe...

阅读(2)评论(0)赞 (0)

Java

Java并发编程之锁机制之ReentrantReadWriteLock(读写锁)

4

邓龙华 发布于 2018-12-19

在前面的文章中,我们讲到了ReentrantLock(重入锁),接下来我们讲 ReentrantReadWriteLock(读写锁) ,该锁具备重入锁的 可重入性 、 可中断获取锁 等特征,但是与 ReentrantLock 不一样的是,在 ReentrantReadWriteL...

阅读(2)评论(0)赞 (0)

编程技术

【Java进阶面试系列之四】扎心!线上服务宕机时,如何保证数据100%不丢失?【石杉的架构笔记】

7

xiaoli.he 发布于 2018-12-19

欢迎关注个人公众号:石杉的架构笔记(ID:shishan100) 周一至周五早8点半!精品技术文章准时送上! 一、写在前面 上篇文章 「Java进阶面试系列之三」消息中间件在你们项目里是如何落地的? ,我们用一个简单易懂的电商场景给大家引入说明了一个消息中间件的使用场景。 同时,...

阅读(8)评论(0)赞 (0)

编程技术

【Java进阶面试系列之三】哥们,消息中间件在你们项目里是如何落地的?【石杉的架构笔记】

7

尖兵 发布于 2018-12-18

欢迎关注个人公众号:石杉的架构笔记(ID:shishan100) 周一至周五早8点半!精品技术文章准时送上! 一、前情回顾 之前给大家聊了一下,面试时如果遇到消息中间件这个话题,面试官上来可能问的两个问题: 你们的系统架构中为什么要引入消息中间件? 系统架构中引入消息中间件有什么...

阅读(13)评论(0)赞 (0)

Java

深入 Java Timer 定时调度器实现原理

2

hanze 发布于 2018-12-17

使用 Java 来调度定时任务时,我们经常会使用 Timer 类搞定。Timer 简单易用,其源码阅读起来也非常清晰,本节我们来仔细分析一下 Timer 类,来看看 JDK 源码的编写者是如何实现一个稳定可靠的简单调度器。 Timer 使用 Timer 调度任务有一次性调度和循环...

阅读(17)评论(0)赞 (0)

Java

为什么阿里巴巴禁止把SimpleDateFormat定义为static类型的?

6

hellas 发布于 2018-12-17

在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间。但是不同的方法获取到的时间的格式都不尽相同,这时候就需要一种格式化工具,把时间显示成我们需要的格式。 最常用的方法就是使用SimpleDateFormat类。这是一个看上去功能比较简单的类,但是,一旦使用不...

阅读(21)评论(0)赞 (0)

Java

新手也能看懂,消息队列其实很简单

5

邓龙华 发布于 2018-12-17

“RabbitMQ?”“Kafka?”“RocketMQ?”…在日常学习与开发过程中,我们常常听到消息队列这个关键词。我也在我的多篇文章中提到了这个概念。可能你是熟练使用消息队列的老手,又或者你是不懂消息队列的新手,不论你了不了解消息队列,本文都将带你搞懂消息队列的一...

阅读(18)评论(0)赞 (0)

Java

学习AbstractQueuedSynchronizer源码以及原理

zhuangli 发布于 2018-12-17

AbstractQueuedSynchronizer(以下简称AQS),是用来构建锁或者其他同步组件的基础架构,它使用一个int成员变量管理同步状态,通过内置FIFO队列来完成资源获取获取线程的排队工作,作者(Doug lea)大神期望它能完成大部分同步需求的基础。 AQS的主要...

阅读(7)评论(0)赞 (0)

Java

Ehcache大杂烩

yeseng 发布于 2018-12-17

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> &l...

阅读(11)评论(0)赞 (0)

Java

Apache Jackrabbit Oak 1.9.13 发布,可扩展、高性能分层存储库

changyuan.xu 发布于 2018-12-16

Apache Jackrabbit Oak 1.9.13 发布了 ,Apache Jackrabbit Oak 是一种可扩展的高性能分层内容存储库,旨在用作现代世界级网站和其它要求苛刻的内容应用程序的基础。 Apache Jackrabbit Oak 1.9.13 是一个直接来自...

阅读(14)评论(0)赞 (0)

Java

Java容器概览

1

尖兵 发布于 2018-12-16

容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection 1. Set TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如 Ha...

阅读(20)评论(0)赞 (0)

Spring

Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

hanze 发布于 2018-12-16

之前我们已经通过 《Spring Cloud Stream消费失败后的处理策略(一):自动重试》 一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试功能:重新入队。 动手试试 准备一个会消费失败的例子,可...

阅读(12)评论(0)赞 (0)

Java

《两周自制脚本语言》——第三天(分割单词)

1

changyuan.xu 发布于 2018-12-16

语言处理器的第一个组成部分是词法分析器(lexer)。程序的源代码最初只是一长串字符串,这样的字符串很难处理,语言处理器通常会首先将字符串中的字符以单词为单位分组,切割成多个子字符串。这就是词法分析 Token对象 下面是某个程序中的一行代码 while i < 10 { ...

阅读(25)评论(0)赞 (0)

Java

Java并发面试系列文章总结【石杉的架构笔记】

xiaoli.wang 发布于 2018-12-15

“ 各位小伙伴大家好,又到了久违的周末。老规矩,周末我们依然进行回顾和总结,这次总结的内容,是上周的Java并发面试系列文章。 一 并发系列第一篇,照例采用场景驱动的方式,阐述了volatile关键字的作用。 首先,在我们假设的多线程场景下,出现了什么问题?然后volatile是...

阅读(31)评论(0)赞 (0)

Java

死磕java concurrent包系列(六)基于AQS解析信号量Semaphore

3

darida 发布于 2018-12-13

之前分析AQS的时候,内部有两种模式,独占模式和共享模式,前面的ReentrantLock都是使用独占模式,而Semaphore同样作为一个基于AQS实现的并发组件,它是基于共享模式实现的,我们先看看它的使用场景 Semaphore共享锁的基本使用 假设有20个人去银行柜面办理业...

阅读(23)评论(0)赞 (0)

Java

打通 Java 任督二脉 —— 并发数据结构的基石

12

刘莉莉 发布于 2018-12-13

每一个 Java 的高级程序员在体验过多线程程序开发之后,都需要问自己一个问题,Java 内置的锁是如何实现的?最常用的最简单的锁要数 ReentrantLock,使用它加锁时如果没有立即加成功,就会阻塞当前的线程等待其它线程释放锁之后再重新尝试加锁,那线程是如何实现阻塞自己的?...

阅读(24)评论(0)赞 (0)

Spring

看spring cloud开源项目Pig的云踩坑记

9

changyuan.xu 发布于 2018-12-12

最近看到一个有趣的开源项目pig,主要的技术点在认证授权中心,spring security oauth,zuul网关实现,Elastic-Job定时任务,趁着刚刚入门微服务,赶快写个博客分析一下。此篇文章主要用于个人备忘。如果有不对,请批评。:sob: 由于每个模块篇幅较长,且...

阅读(39)评论(0)赞 (0)

Java

死磕java concurrent包系列(五)基于AQS的条件队列把LinkedBlockingQueue“扒光”

1

xubiao.zhuang 发布于 2018-12-12

LinkedBlockingQueue是一个基于链表的阻塞队列,实际使用上与ArrayBlockingQueue完全一样,我们只需要把之前烤鸡的例子中的Queue对象替换一下即可。如果对于ArrayBlockingQueue不熟悉,可以去看看https://juejin.im/p...

阅读(28)评论(0)赞 (0)