4 永远向前的麦田

尚未进行身份认证

暂无相关描述

等级
TA的排名 31w+

Mysql主从备份记录

master在192.168.140.123上,slave在124上//第一部分、先配置master1、安装#先删除默认安装的mysqllib库。yumremovemysql*yumremovemariadb*#通过RPM命令进行安装unzipMySQL-5.6.28-1.el6.x86_64.ziprpm-ivhMySQL-server-5.6.28-1....

2019-02-20 15:32:18

ConcurrentHashMap 原理

HashMap在多线程中可能会出现死循环的问题,因而再多线程情况下需要使用其他替代方案。1、选择HashTable是一个方案,不过HashTable会对整个结构加锁(synchronized),在高并发访问情况下,效率很低,因而基本被废弃。另一个就是ConcurrentHashMap了。2、简述ConcurrentHashMap的的实现在JDK1.8有较大的更改。JDK1....

2018-06-10 21:42:39

LockSupport原理

1、使用LockSupport和CAS操作是java并发包中很多控制机制的基础,都是通过UNSAFE来实现的。LockSupport是基本的线程阻塞的原语,通过park和unpark来实现线程的阻塞和唤醒。LockSupport的每个使用它的线程都与一个许可(permit)有关,permit是一个0,1的开关,默认是0,unpark会将permit变为1。park会消耗permit,变为0...

2018-06-09 10:09:35

循环栅栏CyclicBarrier的使用及原理

1、使用直接await即可。//指定等待数量publicCyclicBarrier(intparties)//等待,触发归0则往下走intawait()2、原理使用ReentrantLock及相应Condition实现等待/阻塞/唤醒。主要实现方法为privateintdowait(booleantimed,longnanos)...

2018-06-09 09:51:42

CountDownLatch原理及使用

1、使用通常用于多线程之间的等待常用函数//用于state-1voidcountDown()//主线程等待子线程做事情。voidawait()throwsInterruptedException2、原理原理就是借助AQS的等待队列,代码很简单,这里不赘述。不过这里特意提一点,可以多个线程进行await,countDown将state减为0时,会唤醒所有的...

2018-06-09 09:45:20

ReentrantReadWriteLock详解

1、用法//初始化读锁和写锁ReentrantReadWriteLockrwl=newReentrantReadWriteLock();ReentrantReadWriteLock.ReadLockrlock=rwl.readLock();ReentrantReadWriteLock.WriteLockwlock=rwl.writeLock();//加解锁r...

2018-06-09 09:37:47

Semaphore详解

1、方法publicvoidacquire()publicvoidacquireUninterruptibly()publicvoidrelease()publicbooleantryAcquire(intpermits)2、原理Semaphore原理比较简单,类似ReentrantLock,使用AQS的模板模式来进行实现。//Semaphore....

2018-06-05 22:10:53

ReentrantLock使用和原理(AQS简述)

在开发过程中,synchronized是最简单的同步控制方法,在通常情况下是够用的,但synchronized时不响应中断,而且有时候,我们需要灵活的来控制加解锁。这时候可以使用ReentrantLock。在以前的版本中,synchronized效率是远远低于ReentrantLock,后来经过优化,两者性能差距不大了。但ReentrantLock有一些新特性,是synchronized所不具...

2018-06-03 21:56:00

ThreadLocal

所谓ThreadLocal,就是每个线程人手一只笔,线程本地存储。1、使用ThreadLocal的常规用法是get和set方法,比如可能这样用staticThreadLocal<Object>tlObj=newThreadLocal<>();//如下使用方法if(tlObj.get()==nu...

2018-05-05 09:13:56

logback总结

spring-boot集成logback非常简单,只写一个logback.xml即可。1、根节点configuration<configurationdebug="false"scan="true"scanPeriod="10seconds">有3个属性-scan,为true,表示如果配置文件发生更改,重新加载配置文件。默认为true。-scan...

2018-04-24 20:01:18

设计模式一览

最近总有想写点东西的冲动,想来想去,总结下设计模式吧,自己写一下,不容易忘掉。1、策略模式所谓策略模式,是将算法和策略进行分割的一种模式。之所以这样,其实是基于一种思想,将变化的部分和不变的部分分割开来,如果以后需要修改程序,或者需求变更,只需要修改这部分变化的部分即可,如果有多种算法,相互替换即可。典型举例:我有前n个月份的销售记录,希望预测下一个月的销量。这...

2018-04-05 12:17:34

synchronized总结

用法:a、指定加锁对象,对给定对象加锁;synchronized(a){...}b、直接作用于实例函数,对指定实例加锁;publicsynchronizedvoidf(){...}c、直接作用于静态函数,对当前类加锁;publicstaticsynchronizedvoidf(){...}原理:1、synch

2018-01-07 12:59:50

线程详解

线程状态publicenumState{//刚创建线程.还未执行NEW,//线程已启动,或在等待分配cpu时间片RUNNABLE,//线程阻塞状态,等待进入临界区,通过synchronized等待监视器锁BLOCKED,//线程等待状态,通过Objec...

2018-01-07 11:32:40

HashMap总结

本文所使用的源码来自jdk1.81、存储HashMap之所以访问很快,内部机制是通过数组+链表(链表长度大于8则转为红黑树)来实现的。HashMap中最顶层的结构是哈希桶数组:transientNode<K,V>[]table;其中,Node即表示数组的一个元素,也是一个单向链表,结构如下:staticclassNode<K,V>implementsMap.Entry

2017-10-08 20:01:14

webpack细节点记录

1、__dirname获得当前文件所在目录的完整目录名__filename当前模块文件的带有完整绝对路径的文件名2、path.joinpath.join('/foo','bar','baz/asdf','quux','..')//returns'/foo/bar/baz/asdf'path.join('foo',{},'bar')//throwsexception

2017-06-29 16:53:41

MySQL提示密码过期

java连接mysql(5.6),提示如下Causedby:org.mariadb.jdbc.internal.util.dao.QueryException:Couldnotconnect:Yourpasswordhasexpired.Tologinyoumustchangeitusingaclientthatsupportsexpiredpasswo

2017-06-28 14:34:15

swagger2

swagger需要导入swagger相关页面,比较麻烦。swagger2更近一步,只需要做几个配置即可,更简单,更易用。项目基于spring-boot实现,下面指定配置点pom.xml依赖<!--swagger 框架依赖--><dependency><groupId>io.springfox</groupId>

2017-06-27 20:19:47

swagger

swagger集成

2017-04-26 20:31:50

获取Connection的方法

1、实际项目用的spring-mvc+jpa+hibernate,有需求来读取表名和列名。方法一://有效,不过getConnectionProvider()是@Deprecated的,不建议用Sessionsession=(Session)em.getDelegate();SessionFactoryImplementorsf=(SessionFactoryImplem

2017-04-26 16:45:24

systemctl开启启动redis

redis.service[Unit]Description=redisserviceAfter=network.target[Service]Type=forking//不加这句回一直重启ExecStart=/root/redis-start.shRestart=alwaysEnvironment=PATH=/usr/local/bin:/sbin:/usr/bin:/bin[

2017-03-21 14:16:41

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!