nano-dhh

~~~

多线程异步执行

有时候,我们程序中需要执行一些对返回结果无影响的操作,或者耗时比较长的操作,如果这时我们直接将这些操作放在接口中执行,将会对返回结果的及时性产生较大的影响,或者我们有时需要过一定的时间间隔再执行这项任务,这时我们可以考虑在程序中专门运行几个线程去异步执行这些方法。如果常用的,保存用户登录记录、用户...

2018-03-02 15:22:45

阅读数 3121

评论数 0

树结构==>查询实现屏蔽字功能

我最熟悉的是二叉树,最经典的是存的数字,一个节点Node,里面有个存储值的字段valuepublic class Node{ private String value; private Node left; private Node right; }一个左节点Node,一个右节点Node.1...

2018-03-02 15:19:50

阅读数 238

评论数 0

返回多个值的两个bean结构定义

有时候方法要返回两个值,后者多个值,用下面定义的bean结构可以很快的构建出来:package com.clou.douliu.server.bean; import java.io.Serializable; /** * 值对 * 方法需要返回两个值时,可使用Pair减少代码量 * @...

2018-03-02 15:18:12

阅读数 168

评论数 0

图片存储--Linux创建快捷方式

项目没有采用阿里云的OSS,直接将图片存储在ECS中,挂载到专门一个网盘中。项目应用服务器采用的是tomcat, 这就需要将图片的路径放到tomcat webapps ,或者放在项目的根目录,这时就需要在项目目录中创建图片的快捷方式。创建代码:ln -s 源目录 目标快捷方式[root@iZ94m...

2018-03-02 15:17:34

阅读数 182

评论数 0

数据库MySql隧道连接

数据库安全配置:默认情况下Mysql只允许本地进入设置,在外网想通过命令行访问mysql,那是没门的,如果需要外部IP连接到mysql,需要向mysql数据库里的“user”表里添加相关授权。1、grant语法:grant 权限名(所有的权限用all) on 库名(*全部).表名(*全部) to ...

2018-03-02 15:15:07

阅读数 817

评论数 0

Linux常用命令

vim命令G跳到最后一行, g跳到第一行 查询:用/和?的区别: /后跟查找的字符串。vim会显示文本中第一个出现的字符串。 ?后跟查找的字符串。vim会显示文本中最后一个出现的字符串。 二、注意事项: 不管用/还是?查找到第一个字符串后,按回车,vim会高亮所有的匹配文 查...

2018-03-02 15:08:50

阅读数 64

评论数 0

简单工厂模式 ~ 抽象工厂模式

简单工厂模式1. 目的         工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。2 . 简单工厂模式的结构  3. 一个简单例子// 产品接口 public interf...

2018-03-02 15:07:25

阅读数 77

评论数 0

MySQL中进行树状所有子节点的查询

转自:http://blog.csdn.net/ACMAIN_CHM/article/details/4142971在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中...

2018-03-02 15:06:46

阅读数 2641

评论数 0

tomcat访问记录日志

每一次请求(包括静态文件请求)都会在打印到日志文件中去<Host name="localhost" appBase="webapps" unpackWARs="true&quo...

2018-03-02 15:06:04

阅读数 318

评论数 0

我的粘贴板(一)-前端

1、xml防止数据出现关键字符:<id>" + u.getId() + "</id><name><![CDA...

2018-03-02 15:04:10

阅读数 379

评论数 0

操作系统一些玩法/去空行

1、MyEclipse中去除空行Find : ^\s*\nReplace With: 2、windows 8 关机命令:cmd -- >  Shutdown.exe -s -t 3600   一个小时关机3、dos调出服务:cmd -- > servic...

2018-03-02 15:00:09

阅读数 147

评论数 0

线程之间通讯--wait和notify

使用wait / notify方法实现线程间的通信。(注意这两个方法都是object的类的方法,换句话说java为所有的对象都提供了这两个方法)1 wait 和 notify 必须配合synchronized 关键字使用2wait方法释放锁,notify方法不释放锁。package com.bjs...

2018-03-02 14:59:16

阅读数 65

评论数 0

ThreadLocal

threadLocal的作用:ThreadLocal概念:线程局部变量,是一种多线程间并发访问变量的解决方案。与其synchronized等加锁的方式不同,ThreadLocal完全不提供锁,而使用以空间换时间的手段,为每个线程提供变量的独立副本,以保障线程安全。从性能上说,ThreadLocal...

2018-03-02 14:59:01

阅读数 2534

评论数 1

单例模式--两种最优设计

单例模式,最常见的就是饥饿模式,和懒汉模式,一个直接实例化对象,一个在调用方法时进行实例化对象。饥饿模式:很饿,立即实例化对象懒汉模式:很懒,用的时候才实例化对象考虑到性能和线程安全问题,我们一般选择下面两种比较经典的单例模式,在性能提高的同时,又保证了线程安全dubble check insta...

2018-03-02 14:58:47

阅读数 470

评论数 0

并发类容器

一、传统同步容器的缺陷:同步类容器:如古老的Vector、HashTable。这些容器的同步功能其实都是有JDK的Collections.synchronized***等工厂方法去创建实现的。其底层的机制无非就是用传统的synchronized关键字对每个公用的方法都进行同步,使得每次只能有一个线...

2018-03-02 14:58:28

阅读数 105

评论数 0

经典多线程设计模式(重要)

一、Future模式思想:当service(Main方法模拟)请求一个数据的时候,可以先给他返回一个包装类(空壳,代理对象,未来data,FutureData)然后开一个线程去异步加载真实数据,这样当service收到FutrueData,就可以做其他业务逻辑,当要用的时候,再从FutureDat...

2018-03-02 14:57:53

阅读数 1063

评论数 0

Executor框架

Executor框架:为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效地进行线程控制。它们都在java.util.concurrent包中,是JDK并发包的核心。其中有一个比较重要的类:Executors,他扮演这线程工厂的角色,我们通过Executors可以创建特...

2018-03-02 14:57:21

阅读数 113

评论数 0

CountDownLatch、CyclicBarrier、Semaphore

CountDownLacth(倒计时闩):个人理解:使用同一个CountDownLacth的多个线程,可以使用CountDownLacth提供的await方法,实现阻塞等待,需要其他线程调用CountDownLacth提供的countDown方法来唤醒它,CountDownLacth有构造函数,如...

2018-03-02 14:57:09

阅读数 85

评论数 0

锁机制

概述:在java多线程中,有synchronized关键字来实现线程间的同步互斥工作,那么其实还有一个更优秀的机制去完成这个“同步互斥”工作,他就是Lock对象,用得最多的是重入锁ReentrantLock和读写锁ReentrantReadWriteLock。他们具有比synchronized更为...

2018-03-02 14:56:58

阅读数 1491

评论数 0

Mysql优化

Mysql variables和status:mysql提供variables参数配置变量和status参数状态变量:所有的mysql配置信息都在variables中,这些值可以修改所有的mysql状态值都在status表中,这些值不能修改,只能查看通过show status命令了解各种sql的执...

2018-03-02 14:56:38

阅读数 74

评论数 0

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