从0到1手写一个RPC实现 计划从0到1手写一个RPC的实现我准备把具体实现和想法记录下来,对学习其他RPC框架有一个参考和比较。可能用到的技术栈: spring netty kryo, protobuf, thrift, hessian (序列化和反序列化) zookeeper, etcd, redis (服务注册和发现) 2020-10-08 rpc java
AQS 1 ReentrantLock1.1 ReentrantLock特性概览ReentrantLock意思为可重入锁,指的是一个线程能够对一个临界资源重复加锁。为了帮助大家更好地理解ReentrantLock的特性,我们先将ReentrantLock跟常用的Synchronized进行比较,其特性如下: 1234567891011121314151617181920212223242526272829 2020-10-08
vagrant创建管理虚拟机 安装前准备 Install the latest version of Vagrant. Install VirtualBox vargrant 使用在任意目录下创建 vagrantfile 文件 123456789101112131415161718192021222324252627Vagrant.configure("2") do |config| (1..3).e 2019-07-13 Linux vagrant
junit5 annotation junit5 annotation 详细 Annotation Description @Test Denotes that a method is a test method. Unlike JUnit 4’s @Test annotation, this annotation does not declare any attributes, since test extension 2019-04-10 Java junit
update by partition sql update top 5 123456789SELECT ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY x desc) AS r, t.id FROM some_table t where condition = 'xxx') Awhere A.r < 5; 2019-03-01 sql postgresql
Docker中exec和attach区别 docker attach 执行后会进入到 container 中docker exec 执行后,命令执行返回值并显示到宿主机中。 2018-08-08 docker
Docker alias Docker alias and function1234567891011121314151617181920212223242526272829303132333435363738394041424344Get latest container IDalias dl="docker ps -l -q"Get container processalias dps=" 2018-02-11 shell
Docker常用命令及使用 以下是在 centos 系统下执行 123456789101112131415161718192021sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docke 2017-11-20 docker shell
Java多线程之两阶段终结模式 错误思路stop():调用 Thred 的静态方法直接杀死线程System.exit(int):除了直接杀死线程,还会直接停止掉运行线程的应用程序为什么说这是错误的思路呢?比如 t1 调用了 t2 线程,此时需要终止掉 t2 线程,但是在 t2 线程体中还有被锁住的共享资源,此时还未释放锁,如果直接调用 stop()方法去终止线程,那么 t1 就无法得到共享资源,显然这两种方法存在一定的弊端! 两 2014-05-11 java java