18 Maya2000

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 24w+

NIO Reactor模型 & Netty线程模型

一、NIO Reactor模型1、Reactor模式思想:分而治之+事件驱动1)分而治之一个连接里完整的网络处理过程一般分为accept、read、decode、process、encode、send这几步。Reactor模式将每个步骤映射为一个Task,服务端线程执行的最小逻辑单元不再是一次完整的网络请求,而是Task,且采用非阻塞方式执行。2)事件驱动每个Task对应特...

2020-04-01 22:00:31

偏向所锁,轻量级锁及重量级锁

一个对象刚开始实例化的时候,没有任何线程来访问它的时候。它是可偏向的,意味着,它现在认为只可能有一个线程来访问它,所以当第一个线程来访问它的时候,它会偏向这个线程,此时,对象持有偏向锁。偏向第一个线程,这个线程在修改对象头成为偏向锁的时候使用CAS操作,并将对象头中的ThreadID改成自己的ID,之后再次访问这个对象时,只需要对比ID,不需要再使用CAS在进行操作。 ...

2020-03-30 17:32:42

mysql 索引选择算法/原理详解(rows估算)

本文章假设读者已了解mysql的索引基础知识,如b+树,聚集索引,并对explain分析结果已了解。以下主要分析mysql的索引选择原理及算法。Mysql InnoDB的查询一般基于explian所获取的最小rows来选择使用哪一个索引。Rows是一个estimate的值,其估计算法(规则)如下:1.如果是select c from where a=***,a上有索引。Mysql大概率会使...

2019-10-31 11:39:59

CPU的load和使用率傻傻分不清

1. 什么是Cpu的Load使用uptime、top或者查看/proc/loadavg都可以看到CPU的load统计,这里有三个值,分别代表1分钟、5分钟和15分钟的CPU Load情况。大部分人认为这三个数值越小说明比较好,如果越高说明系统可能存在问题或负载过高了。那这个值处于什么状态是好什么又是不好?什么时候需要关注并检查高的原因?LOAD AVERAGE:一段时间内处于...

2019-07-17 09:01:36

Java多线程:synchronized的可重入性

从Java多线程:线程间通信之volatile与sychronized这篇文章中我们了解了synchronized的基本特性,知道了一旦有一个线程访问某个对象的synchronized修饰的方法或代码区域时,该线程则获取这个对象的锁,其他线程不能再调用该对象被synchronized影响的任何方法。那么,如果这个线程自己调用该对象的其他synchronized方法,Java是如何判定的?这就涉及到...

2019-07-10 11:13:01

PROPAGATION_REQUIRED,PROPAGATN_REQUIRES_NEW,PROPAGATION_NESTED区别

PROPAGATION_REQUIRED嵌套时,不管是否用try catch,只要里外二个事务有一个出错,都会因rollback。因为是同一个事务范围。PROPAGATN_REQUIRES_NEW被嵌套时,外面的事务不会影响里面的事务。如果里面的事务用了try catch,那么出错外面不会rollback,里面rollback。如果没用,里面的抛出错,会导致里外的事务都rollback。P...

2018-08-02 21:19:10

自定义java.policy配置(如何让你的类禁止读写文件?禁止创建Socket对象?)

最近做的项目有一个特殊的需求,由于系统是CS的,客户端需要自己编写JAVA类上传至服务器运行,整个流程如下:1.客户端编写JAVA类,并实现特定接口2.由客户端的JAVA编译器将其编译成class3.客户端通过socket将class文件上传至服务器4.服务器将class文件放至自己的classpath中,加载并执行问题出在最后一步上,服务器虽然由我们完全控制,客户端编写的类虽然需要实现特定的接口...

2018-04-02 15:04:55

Docker 核心技术与实现原理

提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR,让我们再次理解 Docker 的的整体架构变得更加困难。虽然 Docker 目...

2018-03-27 10:09:55

LMAX Disruptor—多生产者多消费者中,消息复制分发的高性能实现

解决的问题当我们有多个消息的生产者线程,一个消费者线程时,他们之间如何进行高并发、线程安全的协调?很简单,用一个队列。 当我们有多个消息的生产者线程,多个消费者线程,并且每一条消息需要被所有的消费者都消费一次(这就不是一般队列,只消费一次的语义了),该怎么做?这时仍然需要一个队列。但是:1. 每个消费者需要自己维护一个指针,知道自己消费了队列中多少数据。这样同一条消息,可以

2018-02-01 14:30:52

sql limit 查询优化

limit offset较大时,select * from user limit 10000,10 和select * from user limit 0,10 执行效率差别较大。原因是limit10000,10的意思扫描满足条件的10010行,扔掉前面的10000行,返回最后的10行(全表扫描)。优化:select * from (   select id f

2018-01-12 14:39:53

包装类对象之间值的比较,全部使用 equals 方法比较

所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。说明: 对于 Integer var = ? 在-128 至 127 范围内的赋值, Integer 对象是在IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 e

2018-01-11 21:46:27

Spring 获取方法参数名

Spring 获取方法参数名

2017-12-06 19:43:52

spring 多数据源事务

spring 3对多数据源的事务管理可以不依赖JTA

2017-12-05 17:36:45

面向对象里类方法归属问题处理

网上一篇文章《十年之后再看“面向对象”》http://www.cnblogs.com/freeflying/p/7410167.html里面有讲到:我举一个例子:现在有两个类,一个用户类(User),一个博客类(Blog),现在有一个发布博客的方法(Publish)。那么,“发布博客”这个方法,究竟是应该放在用户的类里面,还是博客的类里面?即:究竟是User.Publish(B

2017-12-04 19:25:18

windows 下安装tensorflow 和 python

windows tensorflow python

2017-11-22 18:59:35

Mysql 优化

1 一张表二到三个索引。否则影响写入。2 索引上查询时类型要一致3 索引上不要运算4 字条串上索引考虑用前缀,不要全字段建索引5 select id VS select *。前者直接从索引表(聚集索引)里返回结果,不需要到磁盘上读叶子节点(分页去读整条记录)。6 不用外键。高并发导致死锁及其它开销。7 使用数字型索引VS字符串索引(空间占用少,查询快,更高效)8 Uni

2017-11-21 17:41:37

linux之旅——关于虚拟内存

https://www.cnblogs.com/lyp3314/archive/2012/03/06/2380637.htmllinux之旅——关于虚拟内存  虚拟内存是个怎么强调也不过分的概念,它的存在极大地方便了程序设计任务,解放了程序员的手脚。下面看看虚拟内存的作用以及如何在存储管理机制的基础上实现它。什么是虚存?为什么需要它?  我们知道程序代码和数据必须驻留在

2017-11-21 11:02:25

Java 线程优化

代码如下:public class MulThreadTest { public static void main(String[] args) { final int a[] = new int[1024]; final Long begin = new Date().getTime(); for (int i = 0; i < 4; i++) { //final int

2017-11-21 09:25:37

http 学习笔记

1 应用型服务器一般Connection:close;资源型网站:Connection:keep-alive

2017-11-20 16:40:58

Velocity UI for Eclipse

Velocity UI for EclipseThis project leverages theEclipse platform(v3.x) by adding support for the template/scripting engineVelocity.It provides the following plugins:org.apache.velocityVelocity

2017-11-15 10:45:36

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。