自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ahsxsk的学习之路

关注业务、技术、算法

  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 Redis事务介绍

1 什么是Redis事务  Redis通过MULTI、EXEC、DISCARD以及WATCH命令提供事务功能。Redis的事务提供一次性、按顺序执行命令的机制,并且不会中断事务去执行其他命令。Redis事务和我们常理解的事务还是有些区别的,即事务中的部分命令执行失败不会导致事务回滚。Redis事务的核心思想是维护一个事务命令队列,将事务中的所有命令先预存到队列中,等待EXEC一起执行或者DISCAR

2016-01-29 16:16:55 1528

原创 MySQL事务介绍及原理

1 为什么要事务  事务是一组不可被分割执行的SQL语句集合,如果有必要,可以撤销。银行转账是经典的解释事务的例子。用户A给用户B转账5000元主要步骤可以概括为如下两步。   第一,账户A账户减去5000元;   第二,账户B账户增加5000元;   这两步要么成功,要么全不成功,否则都会导致数据不一致。这就可以用到事务来保证,如果是不同银行之间的转账还需要用到分布式事务。2 事务的性质

2016-01-27 18:32:30 19028 1

原创 Java并发编程:死锁及解决方法

1 什么是死锁  死锁是多个进程\线程为了完成任务申请多个不可剥夺的资源并且以不正确的方式推进导致的一直互相等待对方释放资源的状态。下面以经典的哲学家就餐问题为例,描述死锁产生的场景。2 哲学家就餐问题  五个哲学家坐在一个圆桌上,每个哲学家两侧都放着1根筷子,总共有5只筷子。哲学家需要分别或者左右手的两只筷子才能就餐,就餐完成后将筷子放回原处,其他哲学家可以获取放回的筷子。有这样一种状态,每个哲学

2016-01-26 21:44:41 1325

原创 Redis持久化方式介绍

Redis的持久化方法持久化方法有RDB文件和AOF文件两种。下面主要介绍两种持久化方法的原理缺点以及我在做交易系统异步化改造项目时用到redis的场景。1 RDB文件  RDB文件是一个经过压缩的二进制文件,通过这个文件可以还原生成RDB文件时的数据库状态。RDB文件是直接保存在硬盘中的,所以即使Redis宕机也可以通过RDB文件恢复。生成RDB文件的Redis命令有SAVE和BGSAVE两个。1

2016-01-26 19:52:08 2105

原创 Java并发编程:阻塞队列及实现生产者-消费者模式

1 什么是阻塞队列  JDK 1.5的java.util.concurrent包提供了多种阻塞队列。阻塞队列相对于PriorityQueue、LinkedList等非阻塞队列的特点是提供了,队列阻塞的操作,优化了队列为空向队列取数据或者队列满向队列加数据时的阻塞操作。以生产者-消费者模式为例,当队列为空时消费者线程会被挂起,等到队列中有数据时会自动的恢复并消费。1.1 常见的阻塞队列  Blocki

2016-01-24 14:38:33 1718

原创 Java并发编程:生产者-消费者模式

生产者消费者模型是并发编程的经典模型,生产者模型的核心思想是生产者生产的产品通过一块共享的资源与消费者交互,通过共享资源的交互实现了生产者与消费者的解耦。现在的消息队列使用的也是这种思想。   本文实现了如下描述的生产者-消费者模型:   1、生产者和消费者各有1个;   2、通信所使用的队列大小一定(200),并且队列不能溢出;   3、生产者和我消费者的消费速度不做假设,生产速度和消费速

2016-01-22 11:41:02 1920

原创 Java并发编程:线程同步机制

Java中线程同步可以通过wait、notify、notifyAll等方法实现。这几个方法在最顶级的父类Object中实现,并且被声明为final,所以子类无法重写这几个方法。在实现线程同步时,一般需要配合synchronized关键字使用,定义同步代码块或者方法。JDK 1.5以后提供了Condition来实现线程间的协作,Condition提供的await、signal、signalAll方法相

2016-01-19 18:31:17 1246

原创 Java并发编程:ThreadPoolExecutor类及方法源码分析

ThreadPoolExecutor是jdk自带线程池实现类,现有的Executors工具类实现的几种线程池核心都是调用ThreadPoolExecutor类。ThreadPoolExecutor在jdk1.7及以后做了部分修改,本文以JDK1.8为准。1 构造函数ThreadPoolExecutor类共有4个构造函数,其他三个构造函数都是调用下参数最全的一个,下面只介绍参数最全的的一个。 publ

2016-01-14 21:35:30 658

原创 Java并发编程:线程池创建及源码分析

Java5引入了线程池的顶级接口Executor,ExecutorService继承了Executor接口并增加了自己的方法。Executors工具类为Executor,ExecutorService,ScheduledExecutorService,ThreadFactory和Callable类提供了一些工具方法,通过这个工具类提供的方法可以方便的创建线程池。1 使用线程池的好处  使用线程池的好

2016-01-12 15:39:52 739

原创 Java并发编程:线程创建

Java中创建线程最常用的方法有继承Thread类和实现Runnable两种。Thread类实际也是实现了Runnable方法,由于无法继承多个父类但是可以继承多个接口,所有创建进程大多是实现Runnable接口 继承Thread类 创建线程示例 Thread类源码分析 实现Runnable接口 创建线程示例 Runnab

2016-01-07 23:10:33 765

原创 Java并发编程:并发基础概念

Java并发编程(一)  并发编程可以使我们的程序执行速度得到提高,多进程和多线程是常见的并发技术。 1、多进程  2、多线程  3、Java并发编程采用的方法1、多进程  多进程是实现并发技术最直接的方法,它是操作系统级别的,操作系统周期性的快速的将CPU在给各个进程间切换,达到并发的目的。多进程的特点是每个进程都有自己的系统资源、地址空间等,进程之间的运行不会相互影响。进程和程序的区别就是进

2016-01-06 15:31:41 456

VS assistant 插件

自动匹配函数,关键字变色,定义函数、变量也会变色等

2013-07-05

基于指纹识别的访问记录系统 VB开发

vb 可以实现指纹的录入,识别,访问记录,查询等功能

2011-04-09

空空如也

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

TA关注的人

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