自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(10)
  • 资源 (3)
  • 收藏
  • 关注

原创 financial calculator Privacy Policy

hl=en。

2023-05-08 19:50:50 487

原创 java Future 和 google guava的FutureCallback,promise,jdk8的CompletableFuture等异步编程笔记

Future,FutureCallback,promise都是多线程编程中,线程间同步的方式。1.jdk的future,jdk 1.8与futureTask,Callable 等数据结构用,用于获取异步执行的线程的返回结果。java创建线程的方式只有Thread,runnable接口只是给Thread类提供执行的任务和业务逻辑,Thread的start方法才启动一个线程来执行。 callable方法不是直接被thread类使用的,是和futureTask一起使用,futureTask中的run方

2020-08-11 16:15:00 854

原创 redis的 java 客户端

比较有名的是jedis( 连接池是基于apache-commons pool2实现的)和Lettuce(基于netty实现),Redisson(基于netty实现,有不少高级功能,比如分布式锁)1.jedisJedis连接方式有三种Jedis/JedisPool 连接、ShardedJedis/ShardedJedisPool 连接、JedisCluster 连接。Jedis直连相当于一个TCP连接,数据传输完成后关闭连接JedisPool 是一个链接池,存储了一批jedis对象,多次使用时

2020-08-06 16:03:47 203

原创 docker 和 k8s 使用说明

1. build好的程序包需要通过k8s发布时,需要构建docker image,将程序包构建进原始的镜像里去,再push到docker的私服。k8s 部署程序时调用docker从docker 私服上拉取。2. docker 私服用harbor,功能比原生docker registry强大,后端镜像存储可以考虑用MinIO或者raid硬盘,或者主从harbor(harbor 支持主从)。harbor部署在物理机上的docker环境,用docker-compose 启动harbor 两台同样部署 做仓库管

2020-08-03 11:11:46 773

转载 gitlab 和gitlab-ci的使用说明

前期线上的服务器,都是使用xen。写好配置文件和脚本,用脚本一键创建的虚拟机。创建虚机比使用docker来扩容肯定慢的多,创建完虚机,还要等初始化,各种系统录入信息,主机名解析等等,最快也得5分钟。docker慢的话也就不到一分钟。使用虚拟,在创建完后要安装监控,cmdb,rundeck,主机注册consul,dns解析等等,然后还要和发版系统打通,数据库是否要授权等。docker不用做上述操作,编排器都帮忙做了。https://www.cnblogs.com/jiangyunmenglong/p/41

2020-07-22 15:53:06 1611

转载 java ThreadLocal 内存泄漏

ThreadLocal 使某一个变量在每一个线程都存储一个线程私有的值,各个线程对该变量的访问不冲突。每个线程都有一个ThreadLocalMap 对象,用于存放线程私有的值,ThreadLocal 中存储的值实际是存储在ThreadLocalMap的value 中,而ThreadLocalMap的key就是ThreadLocal对象的一个弱引用。所以threadLocal只是用做map的key来区分不同的变量,变量的值的引用实际是存在map的value中。static class ThreadL

2020-07-21 18:14:12 245

原创 Synchronized 和AQS实现的要点

参考了其他一些博文的片段Synchronizedsynchronized 是基于 Java 对象头和 Monitor 机制来实现的。一个对象在内存中包含三部分:对象头,实例数据和对齐填充。其中 Java 对象头包含两部分:Monitor的操作机制如下:Class Metadata Address (类型指针)。存储类的元数据的指针。虚拟机通过这个指针找到它是哪个类的实例。 Mark Word(标记字段)。存出一些对象自身运行时的数据。包括哈希码,GC 分代年龄,...

2020-07-20 17:33:30 1516

原创 java 原子类的一些技术要点

引用了其他一些博文的片段1.jdk8 中的原子类都是用无锁方式和volatile修饰变量实现的(乐观锁来实现,具体是cas,比较并交换,该指令有cpu保证原子性),原子类在java.util.concurrent.atomic包中,包括原子更新基本类型(AtomicBoolean,AtomicInteger,AtomicLong),原子更新数组,通过原子的方式更新数组里的某个元素(AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray),原子更新引

2020-07-20 16:54:13 161

原创 jdk8的 ThreadPoolExecutor 一些要点记录

ThreadPoolExecutor 在 submit或者excute一个线程任务后,是轮训blockqueue获取线程任务来执行还是直接创建线程执行呢,如果是直接创建线程执行,实现的细节是怎么样的呢? public Future<?> submit(Runnable task) { if (task == null) throw new NullPointerException(); RunnableFuture<Void> ftask =...

2020-07-17 15:30:44 217

原创 eclipse和idea一起使用的一些要点记录(mac 环境下,java maven工程)

eclipse的maven插件对m2eclipse对flatten-maven-plugin支持不好,项目的父pom中flatten-maven-plugin中用了非主流的goal。导致eclipse导入会报错。网上的解决方案太繁琐,idea导入使用来的方便。目标是git clone 一份代码下来,eclipse和idea都能打开编辑启动调试。实验之后是成功。eclipse和idea基础概念对比:eclispe:workspace 对应于idea:projecteclipse:project 对

2020-07-15 17:29:16 1219

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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