Maple's Blog.

Maple's Blog.

keep coding and having fun

Java 的 21 种锁
乐观锁 并发控制概念 OCC 适合写入少,回滚成本低于锁的场景 本质没有锁,靠自身校验来实现”锁的效果“ 事务写入数据后,提供时间戳或者类似的凭证 通过凭证检查数据是否被修改 被修改,回滚事务 无修改,提交事务 不足 读取独占的资源可能造成死锁 悲观锁 并发控制概念 PCC 适合写入多,回滚成本高于锁的场景 先竞争获取锁,获得锁只能才能写入数据,写完数据释放锁 不足 容易造成死锁 加锁会有效率消耗 自旋锁 技术方案 现成执行忙循环 占用时间长会导致资源消耗 CAS 默认 10 次 -XX:PreBlockSpin 修改 可重入锁 递归...
maven settings.xml 笔记
Maven 常见的配置文件由以下几部分: proxy mirror repository server profiles 其中 proxy 就是代理服务,这一点暂时不管。 idrepository 和 mirror 和 server 都拥有一个字段是 id。这里的 id 就单纯的用来标识一个 server 的唯一的标识字段。 我一开始以为类似 central, thirdparty 是固定的字段,后面理解开来,应该只是属于常用的 id,并没有固定的含义。 profilesprofiles 可以认为是配置,其 id 是标识配置的唯一 id (和 server 无关)。 可以认为为了方便...
zookeeper 笔记
[toc] 命令行 ls / ls2 delete set get stat 节点持久类型1234567PERSISTENT // 持久节点,一旦创建成功不会被删除,除非客户端主动发起删除请求PERSISTENT_SEQUENTIAL // 持久顺序节点,会在用户路径后面拼接一个不会重复的自增数字后缀,其他同上EPHEMERAL // 临时节点,当创建该节点的客户端链接断开后自动被删除EPHEMERAL_SEQUENTIAL // 临时顺序节点,基本同上,也是增加一个数字后缀CONTAINER // 容器节点,一旦子节点被删除完就会被服务端删除PERSISTE...
Java Stream
5. 实验结果总结从以上的实验来看,可以总结处以下几点: 在少低数据量的处理场景中(size <= 1000),stream 的处理效率是不如传统的 iterator 外部迭代器处理速度快的,但是实际上这些处理任务本身运行时间都低于毫秒,这点效率的差距对普通业务几乎没有影响,反而 stream 可以使得代码更加简洁; 在大数据量(szie > 10000)时,stream 的处理效率会高于 iterator,特别是使用了并行流,在cpu恰好将线程分配到多个核心的条件下(当然parallel stream 底层使用的是 JVM 的 ForkJoinPool,这东西分...
解决群晖 vpn 后无法访问本机的问题
我的群晖的 ip 是 192.168.3.x。 我的 openvpn 设定范围是 10.9.0.x。 一旦链接后,群晖只能通过 10.9.0.1 访问,而无法通过 192.168.3.x 访问。 查看了下别的机子没有相似的问题。尝试升级版本和查看 route 表均未发现问题。 然后逐一对比<设置 / 网络 >里的配置。发现在常规 - 高级设置,勾选了 启用多网关。取消勾选后,问题解决,可以正常访问群晖。
Python 项目 & requirement.txt
安装依赖1pip install -r requirement.txt 环境依赖写入文件 是所有的依赖都会写入,不仅仅是项目所依赖的 1pip freeze > requirements.txt 仅写入项目所依赖的依赖12pip install pipreqspipreqs ./
VLAN
ACCESS 端口接 PC,VID = PVIDTRUNK 端口级联,VID = 全部,PVID = 1 VID = VLAN ID PVID = Port-Base VLAN ID VID(VLAN ID)是VLAN的标识,定义其中的端口可以接收发自这个VLAN的包 当端口1同时属于 VLAN1、VLAN2 和 VLAN3 时, 那么端口1可以接收到 VLAN1,2,3的数据 PVID(Port VLAN ID)定义这个 untag 端口可以转发哪个 VLAN 的包 而它的PVID为1,发出的包只能发到 VLAN1 中 PVID...
pm2 管理所有应用
关于 pm2PM2 is a daemon process manager that will help you manage and keep your application online 24/7 基本用法1234pm2 start app.jspm2 stop [name, id, all]pm2 restart [name, id, all]pm2 kill [name, id, all] 配置文件pm2 支持根据配置文件启动,一般有三种: json yaml js 文件 (确切说就是 nodejs 脚本) 其实对参数而言都是一样的,官方推荐 js 文件,...
RabbitMQ 客户端(nodejs)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135...
gitlab 升级失败 or gitlab-ctl reconfigure 失败
问题通过 apt 升级 gitlab-ce 发生错误。提示 gitlab-ctl reconfigure 失败。 1234567Running handlers:There was an error running gitlab-ctl reconfigure:rails_migration[gitlab-rails] (gitlab::database_migrations line 51) had an error: Mixlib::ShellOut::ShellCommandFailed: bash[migrate gitlab-rails database] (/opt/gitl...
avatar
Maple
coding & have fun