- 博客(15)
- 资源 (11)
- 收藏
- 关注
原创 GuavaCache简介(一)
前言在多线程高并发场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式的cache如redis、memcached,还有进程内的cache如ehcache、GuavaCache。之前用spring cache的时候集成的是ehcache,但接触到guava cache之后,被它的简单、强大、及轻量级所吸引。它不需要配置文件,使用起来和Concurrent
2016-06-18 21:16:24
41851
7
原创 多任务并发之生产者消费者模式应用
生产者-消费者模式大家都很熟悉,生产者负责生产数据,并存放到队列中,消费者负责从队列中取出数据来消费。可以看出生产者和消费者之间不直接通讯,是通过队列来通讯的。生产者和消费者是抽象的概念,可以是线程、进程、系统模块,而队列也可以是JVM中的Queue、Redis中的List、甚至是数据库表,这要求我们在不同的使用场景需要选择相应的实现。比如在线程池ThreadPoolExecutor的使用场景中,生产者就是提交任务的线程,消费者就是消费任务的线程,当然还有一个存放任务的阻塞队列。
2016-05-28 22:58:41
6787
原创 Java线程池ThreadPoolExecutor简介(二)
由于ThreadPoolExecutor实在太常用了,以致于我不得不将一些常用的例子与心得记下来。在上一篇《Java线程池ThreadPoolExecutor简介》中没讲完,这篇继续。
2016-04-24 22:35:43
706
原创 Java中定时任务的实现:Timer与ScheduledExecutorService的不同
在做后台任务的时候经常需要实现各种各种的定时任务,本文介绍了Timer和ScheduledThreadPoolExecutor的使用。
2016-04-10 22:48:35
10137
3
原创 Java线程池ThreadPoolExecutor简介(一)
在多任务并发的应用场景,线程池ThreadPoolExecutor是必不可少的。使用线程池最主要的好处就是能够限制系统最大线程并发数、空余线程复用、线程统一管理、维护一些统计数据如活跃线程数等等。但我感触最深的是它特别适用于生产者_消费者场景,感觉就是为这种模式而设计的工具。
2016-04-07 23:27:57
1718
原创 linux下mysql的简单配置及监控
其实就算my.cnf是空的也没关系,因为所有参数在mysql中都有默认值。官方也提供了一系列硬件环境下的参考配置文件,其中的my-innodb-heavy-4G.cnf 是一个非常好的参考,上面的文档也很详细。由于我不是DBA,想从开发的角度去理解mysql的底层机制,关于配置这里我觉得可以参考《高性能Mysql》中的第8章,还有《MySQL技术内幕 InnoDB存储引擎》中的第3章。看完这些资料我感觉大牛想表达的意思:(1)绝大多数的默认值都是适用的,因此对于不太了解的参数,就不要配置。(2)凡是配
2016-03-12 22:42:47
1838
原创 centos上安装及配置redis cluster
介绍在没有redis cluster之前,大多数使用redis集群方案都是基于twemproxy的,但这个方案部署起来比较复杂,又需要lvs来代理twemproxy,又要keeplived来实现主从。另外还不支持动态扩容,意味着每一次扩容都要将redis之前的所有数据重新发送一遍,不然就会导致节点的数据分布不均匀。后来DBA们研究发现新的redis cluster特性以很简单的方式提供了高
2016-02-20 23:24:12
1144
原创 centos上安装及配置单台redis
安装配置单个redis首先当然是要检查系统是否安装了gcc,可通过命令查看:rpm -qa | grep -i mysql若没有安装,那么可以通过yum安装,输入命令: yum -y install gcc 在Linux下安装Redis非常简单,具体步骤如下(官网有说明):$ mkdir /usr/local/redis3 #准备将redis安装在此目录,因此新建
2016-02-20 17:38:33
573
原创 VirtualBox常用配置
听说VirtualBox比wmvare省资源,我试了一下,确实比较小巧,特别是它的启动方式中有无界面启动,然后我用xshell远程连,真的很不错啊。这里我记一下几个常用配置。
2016-01-24 23:40:27
3790
原创 Java中的类反射与泛型信息
Java中的泛型类型设计Java中的泛型类型(generic type),它只在程序源码中存在,在编译后的字节码中就已经替换为对应的原始类型(raw type)。既然类文件的泛型信息都已经被擦除,那JVM中就不可能存在泛型这种类型。如JVM中并不存在ArrayLis这种类型,不管是ArrayLis或ArrayList在JVM中都是同一种类型,即原始类型ArrayList。可通过以下测试
2016-01-23 21:50:39
397
原创 java并发库中的LockSupport介绍及使用
在没有接触到LockSupport类之前,我一直很疑惑jdk并发库中的很多工具类到底是怎么实现让线程阻塞的呢?最典型的就是futureTask,主线程调用get()方法会一直阻塞直到结果返回。据我所知,能让线程阻塞(注意不是休眠)的实现方式是在同步块中调用锁对象的wait()方法,如下所示: synchronized (object) { try { //进入阻塞状态,
2016-01-10 14:09:26
990
原创 线程的中断与InterruptedException
一直不明白为什么Thread.sleep(long millis)方法为啥会抛出checked异常InterruptedException
2015-05-08 16:37:16
551
原创 Java中关于字符编码的一些思考
字符编码首先必须了解一下计算机中字符编码的概念。众所周知,计算机只认识二进制的内容,而人阅读则依赖于字符的内容,于是才有了诸如ASCII、utf-8、gbk和unicode等字符编码的产生。每一种字符编码都有一张映射表,分别记录了二进制内容 和 字符 之间的映射关系。将字符内容转为二进制内容的过程称为编码,而反之称为解码。
2015-04-26 23:29:21
478
Microsoft Remote Desktop for mac 10.3.10
2020-06-14
购物车(struts2+jquery)
2011-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人