标签:Atom

Java

Java并发——阻塞队列集(上)

9

wenming.gapo 发布于 2018-08-16

阻塞队列是一个支持两个附加操作的队列,这两个附加操作支持阻塞的插入和移除方法 ①.支持阻塞的插入方法: 当队列满时,队列会阻塞插入元素的线程,直至队列不满 ②.支持阻塞的移除方法: 当队列空时,获取元素的线程会等待队列变为非空 在阻塞队列不可用时,这两个附加操作提供了4种处理方式...

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

Java

服务化改造实践(一):Dubbo + ZooKeeper

5

刘莉莉 发布于 2018-08-16

“没有最好的技术,只有最合适的技术。”我想这句话也同样适用于微服务领域, 没有最好的服务框架,只有最适合自己的服务改造 。在 Dubbo 的未来规划中,除了保持自身技术上的领先性,关注性能、大流量、大规模集群领域的挑战外,围绕 Dubbo 核心来发展生态,将 Dubbo 打造成一...

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

Java

高性能无锁队列 Disruptor 初体验

1

dulong 发布于 2018-08-16

最近一直在研究队列的一些问题,今天楼主要分享一个高性能的队列 Disruptor 。 what Disruptor ? 它是英国外汇交易公司 LMAX 开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。基于 Disruptor 开发的系统单线程能支撑每秒600万订单。 目...

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

Java

【Java】留下没有基础眼泪的面试题

10

zhuangli 发布于 2018-08-15

使用多线程时, 不是多线程能提升程序的执行速度 ,使用多线程是为了 更好地利用CPU资源 ! 程序在执行时,多线程是CPU通过给每个线程 分配CPU时间片来实现 的,时间片是CPU分配给每个线程执行的时间,因时间片非常短,所以 CPU通过不停地切换线程执行 。 线程 不是越多就越...

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

Java

感悟优化――Netty对JDK缓冲区的内存池零拷贝改造

2

likai 发布于 2018-08-15

NIO中缓冲区是数据传输的基础,JDK通过ByteBuffer实现,Netty框架中并未采用JDK原生的ByteBuffer,而是构造了ByteBuf。 ByteBuf对ByteBuffer做了大量的优化,比如说内存池,零拷贝,引用计数(不依赖GC),本文主要是分析这些优化,学习...

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

Java

Java线程实现与安全

1

Harries 发布于 2018-08-14

编辑推荐: 本文来自于cnblogs,介绍了线程的三种实现方式,Java线程的实现与调度,线程安全等。 一、线程的实现 1、线程的三种实现方式 首先并发并不是我们通常我们认为的必须依靠线程才能实现,但是在Java中并发的实现是离不开线程的,线程的主要实现有三种方式: 使用内核线程...

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

Java

Java内存模型

3

yanxinchi 发布于 2018-08-14

文章内容有并发、内存模型、重排序、内存屏障、happens-before规则、as-if-serial语义、顺序一致性内存模型、volatile、锁、final。 并发 并发需要处理的两个关键问题:线程之间通信和同步 通信:是指线程之间以何种机制来交换信息;在命令式编程中,通信机...

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

Java

collected questions

songhua.gao 发布于 2018-08-13

分布式锁 websocket zookeeper 重入锁 class的加载过程 GC原理(新生代、老生代、gc回收策略-mark-swap、copying、压缩、分区) Nginx相关知识以及日志文件处理 spring相关知识(aop、ioc,bean的生命周期(中哪个地方可以提...

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

Java

Guava Cache — Java 应用缓存神器

wenming.gapo 发布于 2018-08-13

导语: Guava 作为Google开源Java 库中的精品成员,在性能、功能上都十分出色,本文将从实际使用的角度,来对Guava进行讲解 在使用Cache之前,首先要考虑两个问题: 1、应该在什么情况下使用它? 2、如何正确的使用它? 作者本人有很大一部分代码都在逻辑层(CGI...

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

Java

spring Ioc原理(2)

2

dulong 发布于 2018-08-11

从具体实例分析Spring初始化流程 在博客中Spring初识中,我们介绍了Spring进行Bean管理的实例,我们简单回顾一下。在BookService中的代码首先新建ClassPathXmlApplicationContext实例,随后通过该实例的getBean()方法获取对...

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

Java

XHttp2:功能强悍的网络请求库

3

刘莉莉 发布于 2018-08-09

XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装。 关于我 特征 支持默认、全局、局部三个层次的配置功能。 支持动态配置和自定义底层框架Okhttpclient、Retrofit. 加入基础ApiService,减少...

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

Spring

这是一篇优雅的Springboot2.0使用手册

8

yeseng 发布于 2018-08-08

最近再研究springboot的原理:yum:颇有收获,现在让我分享一下springboot如何使用吧~ 想要解锁更多新姿势?请访问我的博客 啥是Springboot 和书上理解的不同,我认为Springboot是一个优秀的快速搭建框架,他通过maven继承方式添加依赖来整合很多...

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

Java

Java–为什么需要主动关闭文件?

1

小丁 发布于 2018-08-04

在Java编程中,对于一些文件的使用往往需要主动释放,比如 InputStream , OutputStream , SocketChannel 等等,那么有没有想过为什么要主动释放这些资源?难道GC回收时不会释放吗?本文主要是对这一系列问题分析解答。(本文所使用的环境默认为Li...

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

Java

SOFATracer (三) : SOFATracer 中 Disruptor 实践

3

yeseng 发布于 2018-08-04

建议阅读本篇前,请先阅读前两篇 SOFATracer 中, AsyncCommonDigestAppenderManager 对 disruptor 进行了封装,用于处理外部组件的 Tracer 摘要日志。该部分借助 AsyncCommonDigestAppenderManage...

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

Java

SOFATracer (二) : Disruptor 简单使用

5

小丁 发布于 2018-08-04

A High Performance Inter-Thread Messaging Library 高性能的线程间消息传递库 关于 Disruptor 的 一些原理分析可以参考:disruptor 案例 先通过 Disruptor 的一个小例子来有个直观的认识;先看下它的构造函数...

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

Java

Java并发基础:了解无锁CAS就从源码分析

2

yeseng 发布于 2018-08-04

什么是 CAS CAS的全称为Compare And Swap,直译就是比较交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,在intel的CPU中,使用的是 cmpxchg 指令,就是说CAS...

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

Java

一起来学SpringBoot | 第二十七篇:优雅解决分布式限流

2

邓龙华 发布于 2018-08-02

SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物, 自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程 在前面的两篇文章中,介绍了一些限流的类型...

阅读(228)评论(0)赞 (1)

Java

聊聊 JDK 阻塞队列源码分析

刘莉莉 发布于 2018-07-31

项目中用到了一个叫做 Disruptor 的队列,今天楼主并不是要介绍 Disruptor 而是想巩固一下基础扒一下 JDK 中的阻塞队列,听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见,最经典的就是去银行办理业务等。 当然在计算机世界中,队列是属于一种数据结构,队列...

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