rabbitmq /radis/ 线程池
文章平均质量分 85
老马识途2.0
始于颜值,陷于才华,终于人品,合于性格...
展开
-
数据持久化
数据持久化是将内存中的数据转换为存储模型,以及存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型。存储模型可以使关系模型、XML、二进制流等。cmp和Hibernate只是对象模型到关系模型之间转换的不同实现。作用:减少访问数据库的次数,当工程启动时,会读取数据库的数据(启动会慢点)到内存中。然后在后面的读取数据等操作就不用读取数据库了,而是读取内存中的内容,这回大原创 2017-11-21 20:05:52 · 301 阅读 · 0 评论 -
第一章:线程锁synchronized学习
package com.xiaoyexinxin.ThreadLearn;public class MyThread extends Thread{ private int count=5; //synchronized加锁 public synchronized void run(){ count --; System.out.println(this.currentTh...原创 2018-04-20 12:42:39 · 353 阅读 · 0 评论 -
第二章,数据库脏读,oracle和mysql防止脏读原理
文章转自:https://blog.csdn.net/u012453843/article/details/72865687先看如下代码:package com.xiaoyexinxin.ThreadLearn;public class DirtyRead { private String username = "bjfdz"; private String passw...转载 2018-04-20 13:12:29 · 4388 阅读 · 0 评论 -
第七章,activiti个人任务分配,动态指定和监听器指定任务委派人
这章我们介绍下怎么把任务非配给指定的某个人去执行。现实使用的时候我们也有见过前面一个人审批结束后会自动走到下一个审批人,如果不处理就会一直等待,这里也是同样的道理。这里先把任务分配给xiaoliu001,也就是写死指定某个人代码如下:package com.xiaoyexinxixn.ActivityLesson.flow;import java.util.Date;import java...原创 2018-04-24 18:34:16 · 13910 阅读 · 3 评论 -
第三章:java线程重入锁学习
重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。重进入是指任意线程在获取到锁之后能够再次获取该锁而不会被锁阻塞,该特性的实现需要解决以下两个问题。1、线程再次获取锁。锁需要去识别获取锁的线程是否为当前占据锁的线程,如果是,则再次成功获取。2、锁的最终释放。线程重复n次获取了锁,随后在第n次释放该锁后,其他线程能够获取到该锁。锁的最终释放要求锁对于获取进行计数自增,...原创 2018-04-20 15:44:52 · 233 阅读 · 0 评论 -
第九章:activit内置用户组设计与组任务分配和IdentityService接口的使用
package com.xiaoyexinxixn.ActivityLesson;import static org.junit.Assert.*;import javax.sound.midi.VoiceStatus;import org.activiti.engine.IdentityService;import org.activiti.engine.ProcessEngine...原创 2018-04-25 14:04:57 · 2657 阅读 · 3 评论 -
第四章:java 多线程volatile关键字 atomic类学习 java 原子性讲解,变量可见与不可见说明
volatile概念:volatile关键字的主要作用是使变量在多个线程间可见。 在说volatile关键字之前,先来看两个小例子:package com.xiaoyexinxin.ThreadLearn;public class RunThread extends Thread{ private int num=0; public void setNum(int num)...原创 2018-04-21 16:53:56 · 507 阅读 · 0 评论 -
第五章:多线程通信---wait和notify
线程通信概念:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一。当线程存在通信指挥,系统间的交互性会更大,在提高CPU利用率的同时还会使开发人员对线程任务在处理的过程中进行有效的把控与监督。 使用wait/notify方法实现线程间的通信。(注意这两个方法都是object的类的方法,换句话说java为所有的对象都...转载 2018-04-21 17:29:19 · 184 阅读 · 0 评论 -
第六章:单利模式,懒汉式,饿汉式以及静态内部类,双重检查
文章转自:https://blog.csdn.net/u012453843/article/details/73743997单例模式,最常见的就是饥饿模式和懒汉模式,一个直接实例化对象,一个在调用方法时进行实例化对象。 大家见的最多的莫过于下面这种单例模式了,这种模式是懒汉模式,就是说只有你调用getInstance方法的时候,它才会创建实例。但是这种方式有个非常致命的问题就是在多线程...转载 2018-04-21 18:41:41 · 2672 阅读 · 0 评论 -
第一章附加:线程锁synchronized方法,synchronized块和synchronied(this)总结
本文主题转自:https://www.cnblogs.com/oracleDBA/archive/2010/05/22/1741642.html本文主要阐述以下三个问题:1. synchronzied作用2. synchronzied语法3. 对synchronized(this)的理解 首先,解释一下synchronzied作用Synchronzied关键字的...转载 2018-05-03 15:01:32 · 1121 阅读 · 1 评论 -
第三章 : redis数据结构种类
五中数据结构:字符串(String) ,字符串列表(list),有序字符串集合(sorted set),哈希(hash),字符串集合(set)。下面介绍下string 的应用:得到所有key127.0.0.1:6379> keys *1) "foo"2) "liux"3) "liux2"获得值:127.0.0.1:6379> get foo"bar"删除值:127.0.0.1:...原创 2018-04-28 09:03:05 · 261 阅读 · 0 评论 -
第四章:redis 数组结构的set和一些通用命令
存储set ,set不允许有重复元素;设置 获取元素:127.0.0.1:6379> sadd set1 a b c(integer) 3127.0.0.1:6379> SMEMBERS set11) "a"2) "c"3) "b"插入相同元素只保留一个:127.0.0.1:6379> sadd set1 a e f(integer) 2127.0.0.1:6379...原创 2018-04-29 23:13:07 · 1902 阅读 · 0 评论 -
第五章:redis持久化,包括rdb和aof两种方式
rdb持久化方式:是在指定的时间写入硬盘aof方式:是以日志,记录每一操作,两个方式可以单独使用或结合使用rdbrdb方式是默认支持的。特点:只有一个文件,根据配置文件的配置时间间隔,每个一段时间将数据统一读入到一个文件中,方便压缩转移。但是如果宕机就会丢失这段时间内的数据。我们查看redis.conf配置文件:有下面一段:# like in the following example:#...原创 2018-04-30 00:38:19 · 236 阅读 · 0 评论 -
maven+springmvc+mybatis+redis 缓存查询实例,附有源码地址,使用redis注解和hash数据格式set,get两种方式讲解
先来看下工程结构:典型的mvc结构,配置文件都写在resources中,除了web.xml是在下图:下面先建一个maven+springmvc+mybatis的工程:新建工程:new--》other-->maven Project -->下一步--》输入工程名:结束。然后在pom导入依赖,在联网的情况下就可以自动下载jar包了。maven配置也不用改,很方便:<project x...原创 2018-07-09 20:14:24 · 1733 阅读 · 0 评论 -
控制反转和依赖注入
控制反转是通过工厂类,把实现类的方法通过其实现的接口进行调用,并通过扫描所有的@Service注解找到这些类,把他们交给spring容器管理。依赖注入:是动态的将依赖对象注入到bean组件单独的讲其中一个不好理解,实际使用一般是:在启动工程时,如果是非懒加载,spring容器会自动扫描特定包下面所有带@Service注解的类,然后通过@Autowire注解注入前面扫描类的实现接口,调用相应...原创 2018-08-09 11:58:46 · 232 阅读 · 0 评论 -
spring aop保存日志案例,附有项目下载链接
jdk:jdk1.8工具:eclipse自己新建个web工程,本文参考:https://blog.csdn.net/qq_37980469/article/details/80649633第一步,自定义注解类:package com.vsked.test.userservice;import java.lang.annotation.ElementType; imp...原创 2019-03-04 19:01:22 · 596 阅读 · 0 评论 -
第三章:activiti流程工具使用和学生请假流程实例
接着上篇博文,我们画一个流程图:在resources下建一个文件夹,在文件夹中建bpmn绘图文件:画图区域介绍:下面我们写一个学生请假流程实例:建一个bpmn文件,如下:如下图,一个完整的流程要有开始和结束,所以先制作开始和结束节点,选择startEvent,然后再画图区域画开始圆圈,结束同理:接着我们建三个任务节点,选工具区的userTask,画三个任务节点:修改任务名称,如下:再把各个人物连在...原创 2018-04-19 19:06:18 · 3306 阅读 · 2 评论 -
第二章:activiti工作流连接数据库,和eclipse安装activiti插件
创建一个maven工程,需要用的jar的pom配置如下:(每个依赖上面有依赖的复制地址)<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO...原创 2018-04-19 15:11:56 · 713 阅读 · 0 评论 -
第八章:activiti多用户任务分配
就是只要有一个人审批通过就可以进入到下一个节点。画图如下:点击leave001节点在下图位置加入几个人物的执行人:、完了还要设置流程图di为StudentLeaveProcess07;代码:package com.xiaoyexinxixn.ActivityLesson.flow;import java.util.Date;import java.util.HashMap;import ...原创 2018-04-22 17:39:59 · 7056 阅读 · 3 评论 -
CentOS6.5下RabbitMQ安装3 mq使用原理和使用原因
1.操作系统环境操作系统:CentOS6.5 / 64bit用户:root2.RabbitMQ编译安装RabbitMQ是使用Erlang开发,所以安装RabbitMQ前需要先安装Erlang。2.1.获取Erlang和RabbitMQ的源文件http://erlang.org/download/下查找最新的源文件,我选择的是版本17转载 2017-10-11 19:47:44 · 848 阅读 · 0 评论 -
redis 的两种持久化方式及原理
转自:http://zhengdl126.iteye.com/blog/2191834Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。R转载 2018-01-17 00:54:41 · 1322 阅读 · 0 评论 -
线程池与mq的简单结合使用
本文考虑发送方和接收方有多个线程发布消息和多个线程接收消息的情况: 1.生产者package com.activemq3;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax...原创 2018-03-15 13:03:30 · 4224 阅读 · 0 评论 -
线程池学习使用
文章转自:https://www.cnblogs.com/wihainan/p/4765862.html在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务...转载 2018-03-12 11:39:46 · 300 阅读 · 0 评论 -
第一章:Activiti工作流教程
文章转自:https://blog.csdn.net/qq877507054/article/details/60143099个人总结流程是:startProcess(入参)开始工作流,我们会在中设置流程模板id,即我们画的.bpmn流程图,这个流程图其实是个xml文件。我们获得流程模板的所有serviceTask任务,这样就相对于获取了一个流程实例,然后就开始逐个执行这个流程实例中的每个serv...转载 2018-04-08 17:51:15 · 32536 阅读 · 5 评论 -
redis第一章:redis原理,使用背景,下载安装
一:使用背景及原理 1.1 互联网时代背景下大机遇,为什么用nosql 1.1.1 单机Mysql的美好年代(好几年前) 当时的业务很相对简单,就是JSP--->Action---->Service---->DAO----->数据库,数据库也就是一个实例而已,无论是Mysql还是Oracle。把这五层缩减为三层...原创 2018-04-15 10:34:01 · 862 阅读 · 0 评论 -
redis 第二章:redis-desktop-manager的使用和jedis的使用
实际工作环境中,Redis会安装在服务器上,我们想使用Redis服务就要使用Redis终端。 redis-desktop-manager便是来连接Redis服务并可供我们学习使用的。 首先,安装 redis-desktop-manager,大家可以到https://redisdesktop.com/download这个地址下载安装包并进行安装。下载windows版本的。 ...原创 2018-04-15 11:11:07 · 1010 阅读 · 0 评论 -
第一章:activeMQ原理,安装,queue,topic以及topic持久化方式介绍,包括修改ubuntu的jdk环境变量。
转载了好几篇关于mq的博文,但是总感觉对mq的理解使用都不到位。这里打算从原理到使用都从头来一遍。1,原理1.1通过类比理解mq可以理解它是一个秘书,或是助手,你是老板,你告诉秘书说你要开会,那么秘书就会把开会的时间,地点,人员都安排好。你就省去了这些琐事,这有点类似于sping的面向切面。当添加一个商品时,商品服务只需要告诉消息中间件MQ,MQ便去通知其它服务做各自该做的事情,比...原创 2018-04-11 18:29:02 · 631 阅读 · 0 评论 -
第二章:ActiveMQ与spring的整合使用
在之前建好的工程的主目录下建一个resource目录,然后建一个配置文件,我这里是activeMq.xml配置文件的内容如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.sp...原创 2018-04-12 12:57:20 · 170 阅读 · 0 评论 -
第七章:同步类容器,vector 线程安全与hashmap线程不安全等的举例
转自:https://blog.csdn.net/u012453843/article/details/73744277 同步类容器,常见的有Vectorr和HashTable,也就是我们常说的线程安全的两个集合容器,这些容器的同步功能其实都是由JDK的Collections.synchronized***等工厂方法去创建的。其底层的机制无非就是用传的synchronized关键字对每个共用的方...转载 2018-04-22 10:58:20 · 420 阅读 · 0 评论 -
第四章:activiti RuntimeService设置获和取流程变量,及与taskService的区别,开始和完成任务时设置流程变量
上一章我们讲了taskService获取流程变量的过程,这里我们讲讲RuntimeService是怎么设置和获取的,其实过程跟taskService是差不多的。RuntimeService 与流程实例及执行对象相关,对于的表是:act_ru_executionTaskService 与任务相关 对应的表是act_ru_variable代码如下:/** * RuntimeService设置流程...原创 2018-04-22 14:19:13 · 12647 阅读 · 0 评论 -
第五章:activiti流程分流判断,判断走不同的任务节点
这里我们承接专栏的上一篇博文,请假流程中我们会有个判断,因为一般的请假班长有权直接审批通过,不用班主任批准,那这里就需要加个判断了;这里我们辅助一个请假流程,如下:流程图如下:那么怎么判断走那天线的,也就是要不要走leave003这个节点呢,这里我们需要写内置表达式,类似el表达式:另外一条线:下面我们新建一个类,如下,需要修改部署流程定义方法里面的流程图文件名:对了,还有要修改启动流程中的key...原创 2018-04-22 15:01:35 · 6050 阅读 · 0 评论 -
第六章:activiti流程分流判断之排它网关和并行网关
专栏上一章简单介绍了通过判断分流走不同的任务节点。下面我们介绍一下比较复杂的一点的判断。排它网关:具有排它性,根据条件只能走一天线路,比如请假有班主任审批,班长审批,年级主任审批,这三个只能走一个,这就是排它性。下面我们复制一个请假流程图:首先介绍怎么中间的叉号图,叉号即网关,所以找到右侧工具栏的gateway,改好后我们看三条判断的先,leave days<3表示请假小于3天的走的流程,对...原创 2018-04-22 16:43:05 · 11130 阅读 · 5 评论 -
线程池和队列学习,队列在线程池中的使用,什么是队列阻塞,什么是有界队列
一,线程池首先了解线程池整个框架1,这里记住最核心的类是ThreadPoolExecutor2,在ExecuorService中提供了newSingleThreadExecutor,newFixedThreadPool,newCacheThreadPool,newScheduledThreadPool四个方法,这四个方法返回的类型是ThreadPoolExecutor。3,这...原创 2019-03-20 22:33:09 · 2227 阅读 · 0 评论