08 2018 档案
摘要:基础 nginx是一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器,特点是占用内存少,并发处理能力强,事件驱动 nginx启动后,在unix系统中以daemon的方式在后台运行,后台包括一个master进程和多个worker进程,每个worker进程都是从master fork过来的 m
阅读全文
摘要:主从搭建 redis的主从搭建非常简单,打开配置文件6379.conf,只需要将主节点的protected mode设置为no,然后在从节点配置中加入:slaveof ,启动即可 集群 redis集群的TCP端口 每个redis集群节点都需要两个TCP端口,用户端口和集群间节点通信的端口,如6379
阅读全文
摘要:为什么不选择使用Java原生的NIO而选择netty? 1、使用jdk自带的nio的类库和api繁杂,使用麻烦。你需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等 2、netty底层IO模型随意切换,这些都只需要做很小的改动 3
阅读全文
摘要:mybatis启动流程 1、首先来看看最简单的mybatis项目启动过程 public static void mybatisTest() throws IOException { String resource = "mybatis/mybatis config.xml"; //配置文件 Inpu
阅读全文
摘要:volatile变量 当一个变量被定义为volatile类型之后,它具备两个特性: 1、可见性,所有对该变量上作的更改,其他线程可以立刻知道。volatile变量在各工作线程中不存在一致性问题。 2、禁止指令重排序 long、double型变量的特殊规则 Java内存模型要求lock、unlock、
阅读全文
摘要:通常Java中涉及金钱相关的计算为了保持精度,会采用BigDecimal来实现,但是BigDecimal中创建BigDecimal类对象的时候,如果使用直接new的话,必须是String类型的参数,否则会导致创建出来的对象不是你想要的,比如new BigDecimal(0.1)得到的结果可能是:0.
阅读全文
摘要:https://www.oudahe.com/p/java/
阅读全文
摘要:Condition Condition是一种广义上的条件队列,它为线程提供了一种更为灵活的等待/通知模式, Condition是一个接口,它的实现ConditionObject是AQS的一个内部类,Conditon必须配合锁一起使用。condition调用await会释放锁,调用condition.
阅读全文
摘要:简介 ReentrantLock是一种可重入锁,可以等同于synchronized的使用,但是比synchronized更加的强大、灵活。 一个可重入的排他锁,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。ReentrantLock
阅读全文
摘要:1、与synchronized相比,ReentrantLock提供了更多,更加全面的功能,具备更强的扩展性。例如:时间锁等候,可中断锁等候,锁投票。 2、ReentrantLock还提供了条件Condition,对线程的等待、唤醒操作更加详细和灵活,所以在多个条件变量和高度竞争锁的地方,Reentr
阅读全文