logo头像
Snippet 博客主题
GC调优基础之堆大小

GC调优基础之堆大小

调整堆大小GC调整的第一堂课是调整应用程序堆的大小。关于堆大小的调整还有更高级的话题,不过作为第一步,我们首先讨论如何设置总体堆的大小。 与其他的性能问题一样,选择堆的大小其实是一种平衡。如果分配的堆过于小,程序的大部分时间可能都消耗在GC上,没有足够的时间去运行应用程序的逻辑。但是,简单粗暴...

局域网文件共享与下载服务新姿势

局域网文件共享与下载服务新姿势

在平常生活或工作中,我们经常需要传输文件,比如将电脑上下载的App传送到手机或另一台PC上、同事之间传输一些大型的文件。当我们遇到此类问题时,首先想到的就是使用QQ或者微信,更深一层,去网上搜索一些文件传输工具,如Send Anywhere,LZ当时在大学时候经常使用的是FTP、Samba服务...

RabbitMQ工作模式之简单模式

RabbitMQ工作模式之简单模式

今天我们来学习一下RabbitMQ工作模式之简单模式,在学之前我们根据官方文档(纯英文文档,可以装个Chrome插件选中翻译)学习一下RabbitMQ的一些术语,这才能让我们更深入的了解。 准备条件本教程假定RabbitMQ已在标准端口(5672)上的localhost上安装并运行。如果您使用...

RabbitMQ概述

RabbitMQ概述

之所以今天写RabbitMQ学习专栏,主要是因为自己没有真正的系统学习过。之前工作经历中都是为用MQ而用的MQ,对MQ整个内部机制没有一个深入的了解和系统的学习。比如我们用Spring Cloud Stream或Spring Cloud Bus组件时候,我们会经常碰到MQ。MQ产品市面上有很多...

Docker安装分布式消息中间件-RabbitMQ

Docker安装分布式消息中间件-RabbitMQ

RabbitMQ是流行的开源消息队列系统,采用天生抗并发的erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。接下来,我们通过Docker的方式安装RabbitMQ。 查看RabbitMQ版本进入docker hub官方镜像仓库或阿里docker镜像库,搜索rabb...

【【Java并发编程实战】线程池应用之Executors线程池静态工厂

【【Java并发编程实战】线程池应用之Executors线程池静态工厂

今天我们来认识一下,线程池的静态工厂Executors类,平时写测试代码的时候可用一用,生产代码尽量少用。为什么说生产上尽量少用呢?这是有原因的,请耐心听彤哥讲解。 阿里的代码规约不建议使用这样的工厂类,而建议使用手动创建并管理ThreadPoolExecutor,在阿里巴巴Java开发手册中...

【Java并发编程实战】-Java线程池基础

【Java并发编程实战】-Java线程池基础

线程池是限制系统中执行线程的数量,并能够根据一定的策略回收线程并重复使用。JDK1.5之后加入了java.util.concurrent包,我们日常称之为J.U.C并发包,这个包对我们日常解决并发提供了非常大的帮助。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费...

【Java并发编程实战】-浅谈volatile内存可见性

【Java并发编程实战】-浅谈volatile内存可见性

volatile这个关键字大家都听过,看过许多源码也用过,这个关键字备受争议,很多人基于表面理解而导致在实际开发过生中大肆误用,暴露出各式各样的问题,让人摸不着头脑,今天我们来好好理解一下volatile。 百度百科:volatile是一个类型修饰符.volatile的作用是作为指令关键字,...

【Java并发编程实战】-Java内存模型

【Java并发编程实战】-Java内存模型

硬件的效率与一致性计算机内部运算流程 计算机执行若干个运算任务,所有的计算任务不可能仅仅靠处理器“计算”来完成,计算器存储设备与处理器的运算速度有几个数量级的差距; 至少要与内存进行交互,如读取运算数据、存储运算结果,不能仅仅靠CPU寄存器来完成 随着计算机硬件的快速发展,任何设备的读写速度要...