自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(22)
  • 收藏
  • 关注

转载 Disruptor使用入门

转载自http://www.cnblogs.com/haiq/p/4112689.html        工作中用到了这个Disruptor东东,于是看了几篇博客,下面记录下,以便自己研究  已经不记得最早接触到 Disruptor 是什么时候了,只记得发现它的时候它是以具有闪电般的速度被介绍的。于是在脑子里, Disruptor 和“闪电”一词关联了起来,然而却一直没有时间去探究一下。

2016-11-30 18:08:32 883 1

转载 关于Spring封装Java线程池的理解

项目用到了TaskExecutor,我看有的是通过spring bean配置的.有的是通过配置的方式,于是看了下官方文档,官方文档(好像是第30.5章)上写的很清楚,里面的参数的含义等东东, <task:executor id="asyncTaskExecutor" pool-size="${e

2016-11-27 11:49:43 2610

转载 LUA中的正则表达式

模式匹配函数在string库中功能最强大的函数是:string.find (字符串查找), string.gsub (全局字符串替换), and string.gfind (全局字符串查找). 这些函数都是基于模式匹配的。与其他脚本语言不同的是,Lua并不使用POSIX规范的正则表达式(也写作regexp)来进行模式匹配(译者:POSIX是unix的工业标准,regexp最初来源于unix

2016-11-23 16:38:37 1087

原创 lua写一个g转换为kg的方法

local function g_convert_kg(info) if info["weight"] and (string.find(info["weight"], "k") or info["weight"] =="0") then print(info["weight"]) print("不用修改") elseif info["weight"] then

2016-11-23 09:27:20 1084

原创 Java高并发程序设计笔记8之线程池

简单的线程池实现。网上有好多demo,至于为什么需要线程池,由于每次系统调用都会创建一个线程的话,系统的开销比较大,如果用一个线程池来复用线程的话,可以有效避免系统的开销JDK内置线程池线程池的种类newFixedThreadPool newSingleThreadExecutor newCachedThreadPoolnewScheduledThreadPoo

2016-11-20 18:20:33 658

转载 回顾总结一下JDK高并发的包(集合、多线程、锁)

转载于http://blog.csdn.net/yangbutao/article/details/84795201、java 高并发包所采用的几个机制(CAS,volatile,抽象队列同步)   CAS(乐观操作),jdk5以前采用synchronized,对共享区域进行同步操作,synchronized是重的操作,在高并发情况下,会引起线程频繁切换;而CAS是一种乐观锁机制,comp...

2016-11-20 18:03:16 1064

原创 Java高并发程序设计笔记7之并发容器及典型源码分析

并发容器是针对多个线程并发访问而设计的,在jdk5.0引入了concurrent包,其中提供了很多并发容器,极大的提升同步容器类的性能。ConcurrentHashMap我们知道HashMap不是一个线程安全的容器,最简单的方式使HashMap变成线程安全就是使用Collections.synchronizedMap,它是对HashMap的一个包装public st

2016-11-20 17:34:24 472

原创 Java高并发程序设计笔记6之JDK同步控制

CountDownLatch倒数计时器一种典型的场景就是火箭发射。在火箭发射前,为了保证万无一失,往往还要进行各项设备、仪器的检查。 只有等所有检查完毕后,引擎才能点火。这种场景就非常适合使用CountDownLatch。它可以使得点火线程,等待所有检查线程全部完工后,再执行主要接口 static final CountDownLatch end = new CountDownLatc

2016-11-20 16:50:41 438

原创 Java高并发程序设计笔记5之JDK同步控制

ReentrantLock    ReentrantLock是JDK5加入的新类,它的用法和synchronized类似,不过它需要程序员手动添加加锁和解锁的代码。它的特性如下:     可重入:单线程可以重复进入,但要重复退出     可中断:lockInterruptibly()     可限时:超时不能获得锁,就返回false,不会永久等待构成死锁     公平锁:先来先

2016-11-20 16:11:17 380

转载 Callable,Runnable,Thread,Future之简单理解

编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,CallableRunnable和Callable的区别是  (1)Callable规定的方法是call(),Runnable规定的方法是run()。  (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得  (3)call方法可以抛出异

2016-11-17 13:56:33 304

转载 线程池ThreadPoolExecutor使用简介

转载自http://blog.chinaunix.net/uid-20577907-id-3519578.html  这篇博客非常生动形象的解释了线程池的用法一、简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolS

2016-11-17 13:29:17 257

转载 Lua中简单入门

发现项目用到了Lua,于是看了看这篇教程 Lua教程,入门还是比较简单的,下面是转载另外一篇文章,供自己温习!转载自http://www.jb51.net/article/55802.htm 这篇文章主要介绍了Lua中的基本语法、控制语句总结,本文总结了赋值、局部变量与块、控制结构、数字型for、泛型for等内容,需要的朋友可以参考下 前言 学习一门语言,首先就是从最基本的语法

2016-11-16 16:38:03 484

原创 Java高并发程序设计笔记4之无锁

无锁类的原理CAS(compare and swap)算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表示新值。仅当V 值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么 都不做。最后,CAS返回当前V的真实值。CAS操作是抱着乐观的态度进行的,它总是认为自己可以成功完成 操作。当多个线程同时使用CA

2016-11-12 23:31:38 376

原创 Java高并发程序设计笔记3之内存模型和线程安全

原子性原子性是指一个操作是不可中断的,即使是在多个线程一起执行的适合,一个操作一旦开始,就不会被其它线程干扰比如i++是原子操作吗?由于这个涉及到一个读的过程,还有就是写的过程,所以肯定不是原子的,再比如在Long型在32位不是原子的,在64位操作系统上是原子的,这个可以自己验证有序性在并发时,程序的执行可能就会出现乱序public class TestExam

2016-11-12 12:02:38 421

原创 Java高并发程序设计笔记2之并行程序基础

什么是线程线程是进程的执行单元,比如进程就是一个工厂,线程就是工厂内的各个车间。线程的基本操作1新建线程,2种方法,一种是实现runable接口,一种是继承Thread类public class Main { public static void main1(String[] args) { //新建线程 Thread tt

2016-11-09 15:08:23 460

转载 配置nginx+lua开发环境笔记(2)

上一章节在Centos7下安装了openresty  点击查看点击打开链接          接下来又参考张开涛的安装Nginx+Lua开发环境一步一步做的实验     点击查看点击打开链接  由于我是用yum安装的,所以默认把openresty的依赖包以及LuaJIT,ngx_cache_purge等一些内置的插件都安装好了,安装成功可以发现  会发现多出来了如下目录,说明安装成功(

2016-11-08 17:47:47 5645

原创 使用openresty搭建一个hello word(1)

1打开官网点击接打开链,选择中文站2官网第一个栏目是下载,这里根据自己的实际情况去选择,对于一些常见的 Linux 发行版本,OpenResty 提供 官方预编译包。确保你首先用这种方式来安装。我的是Centos7所以我参考官网推荐的预编译包来安装的3打开预编译包的地址http://openresty.org/cn/linux-packages.html  1)你只用创建一个名为

2016-11-08 14:43:55 1739

原创 Java高并发程序设计笔记1之重要概念

几个重要的概念  同步(synchronous)和异步(asynchronous) 同步异步相对系统调用来讲的,异步就是单起另一个线程来运行任务,不影响调用的方法继续执行 并发(Concurrency)和并行(Parallelism) 单核CPU只能并发,也就是一会做这个一会做那个,并行可以理解为一起执行 临界区 – 临界区用来表示一种公共资源或者说是共享数

2016-11-08 11:01:24 549

原创 JAVA应用JVM原理及参数调优笔记

JVM是按照运行时数据的存储结构来划分内存结构的,JVM在运行Java程序时,将它们划分成几种不同格式的数据,分别存储在不同的区域,这些数据统一称为运行时数据,运行时数据包括Java程序本身的数据信息和JVM运行Java需要的额外的数据信息,如下图所示1JMMJava内存结构,Java的主内存和私有内存什么是线程安全,你的预料结果和实际结果可能不一样一个主内存,3个线程

2016-11-06 21:51:37 1961

原创 学习Git的心得体会

之前一直用SVN,偶尔自己玩玩git,但是也都是通过eclipse集成的,很少通过命令来玩,最近花了一天时间来学习下git,发现git挺好玩,也不是想象的那么难,当然我学的过程是参考廖雪峰老师的博客的。博客地址如下:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0001)首先

2016-11-04 16:36:17 1693

原创 初学spring的方法(1)

1首先打开spring的官网文档http://spring.io/,看到几个目录分别是DOCS(文档),GUIDES(指引),PROJECTS(产品项目),BLOG(博客),QUESTIONS(问题)等,首先看看文档里的技术模块划分,spring分为好多模块,比如下图 2看完文档有个大致了解后,可以看看GUIDES(指引).3再看看项目(PROJECTS)http://pr

2016-11-01 17:54:12 573

原创 关于如何确定要索引的数据列以及如何正确的建立索引的一些方法

尽量为用来搜索,分类或分组的数据列编制索引,不要为作为输出显示的数据列编制索引。换句话说,最适合有索引的数据是那些在where字句中出现的数据列,在联结子句中给出的数据列,或者是在order by 或group by字句中出现的数据列,根据select关键字仅出现在输出数据列清单里的数据列最好不要有索引:SELECT  col_a            FROM  tbll LEF

2016-11-01 17:20:45 2857

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除