摘要: volatile不是原子量yining下午11:43:02volatile使用的是内存屏障yining下午11:43:20只能保证在一个线程写,多个线程读的情况下的一致性yining下午11:43:44真正的原子量应该是用的自旋锁yining下午11:44:14自旋锁没有到内核态的转换,所以还算比较... 阅读全文
posted @ 2015-06-18 18:53 TonyChai 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下:序号问题1什么是同步?2什么是异步?3什么是阻塞?4什么是非阻塞?5什么是同步阻塞?6什么是同步非阻塞?7什么是异步阻塞?8什么是异步非阻塞?在查了一部分资料后,愿试着以通俗易懂的方式解释下这几个名词。如有不足之处,还望告知... 阅读全文
posted @ 2015-06-11 11:12 TonyChai 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nexus私服,供其他模块引用。下面将主要介绍如何利用Jenkins、... 阅读全文
posted @ 2015-06-10 11:08 TonyChai 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子。假如一个项目,由A、B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端。A和B都习惯使用SVN作为代码管理工具,他们分别开始工作,一个功能完成后会提交到SVN,以便对方能够使用。一天... 阅读全文
posted @ 2015-06-10 11:05 TonyChai 阅读(347) 评论(0) 推荐(0) 编辑
摘要: Why Elasticsearch?由于需要提升项目的搜索质量,最近研究了一下Elasticsearch,一款非常优秀的分布式搜索程序。最开始的一些笔记放到github,这里只是归纳总结一下。首先,为什么要使用Elasticsearch?最开始的时候,我们的项目仅仅使用MySQL进行简单的搜索,然后... 阅读全文
posted @ 2015-06-08 17:37 TonyChai 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 一、总论根据http://lucene.apache.org/java/docs/index.html定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结... 阅读全文
posted @ 2015-06-05 17:57 TonyChai 阅读(3057) 评论(0) 推荐(0) 编辑
摘要: 刚刚过去的双11,真是给线下运营商好好上了一课。当今的互联网真是炙手可热,大家对互联网的热情是如此之高。相信电商之间的竞争将更加的激烈和残酷,不过,搜索,作为用户体验很重要的一点,各大电商也做的越来越好。但是,我相信软件只有开始,没有结束,搜索的业务也在不停的变化。搜索技术,你值得拥有。现在才开始谈... 阅读全文
posted @ 2015-06-05 16:10 TonyChai 阅读(999) 评论(0) 推荐(0) 编辑
摘要: 一、前言1.5后引入的Executor框架的最大优点是把任务的提交和执行解耦。要执行任务的人只需把Task描述清楚,然后提交即可。这个Task是怎么被执行的,被谁执行的,什么时候执行的,提交的人就不用关心了。具体点讲,提交一个Callable对象给ExecutorService(如最常用的线程池Th... 阅读全文
posted @ 2015-06-05 11:00 TonyChai 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章中通过引入的一个例子介绍了在Executor框架下,提交一个任务的过程,这个过程就像我们老大的老大要找个老大来执行一个任务那样简单。并通过剖析ExecutorService的一种经典实现ThreadPoolExecutor来分析接收任务的主要逻辑,发现ThreadPoolExecutor的... 阅读全文
posted @ 2015-06-05 10:59 TonyChai 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 关于IntelliJ IDEA快捷键分享给大家==Ctrl==Ctrl + Y 删除行ctrl + X 剪切行Ctrl + N 查找类Ctrl + R 替换Ctrl + O 选择可覆盖/继承的方法Ctrl + F 当前代码中查找Ctrl + J 自动代码提示(提示的是自己定义的代码格式)Ctrl +... 阅读全文
posted @ 2015-06-03 18:37 TonyChai 阅读(541) 评论(0) 推荐(0) 编辑