
后端
文章平均质量分 60
flink
luo.chunhai
java 后端 coder
展开
-
mongodb 索引,事务,分片
一. 概览插件式存储引擎, MongoDB 3.0引入了插件式存储引擎API,为第三方的存储引擎厂商加入MongoDB提供了方便目前除了早期的MMAP存储引擎外,WiredTiger和RocksDB 均 已完成了对MongoDB的支持,1.1 compare MMAPv1 and WiredTiger ; 以及WiredTiger 新特性文档级别并发控制多个客户端请求同时更新一个集合内存的多个文档,再也不需要在排队等待 库级别的写锁。Snapshot Checkpoints(快照和检查点):m原创 2021-11-04 13:32:25 · 524 阅读 · 0 评论 -
java -> reentrantlock & AQS
参考文章图文并茂:AQS 是怎么运行的?1. AQS (AbstractQueuedSynchronizer) 抽象类的队列式同步器AQS 是一个用于构建锁和同步器的框架,许多同步器都可以通过AQS很容易并且高效的构造出来。抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。AbstractQueuedSynchronizer,这个类也是在java.u原创 2021-09-16 16:52:24 · 278 阅读 · 0 评论 -
java voliate
定义volatile变量规则:对volatile变量的写入操作必须在对该变量的读操作之前执行。volatile变量规则只是一种标准,要求JVM实现保证volatile变量的偏序语义。结合程序顺序规则、传递性,该偏序语义通常表现为两个作用:保持可见性禁用重排序(读操作禁止重排序之后的操作,写操作禁止重排序之前的操作)补充:程序顺序规则:如果程序中操作A在操作B之前,那么在线程中操作A将在操作B之前执行。传递性:如果操作A在操作B之前执行,并且操作B在操作C之前执行,那么操作A必须在操作C之原创 2021-09-16 14:32:17 · 690 阅读 · 0 评论 -
java 单例模式的写法
饱汉模式饱汉是变种最多的单例模式。我们从饱汉出发,通过其变种逐渐了解实现单例模式时需要关注的问题。基础的饱汉饱汉,即已经吃饱,不着急再吃,饿的时候再吃。所以他就先不初始化单例,等第一次使用的时候再初始化,即·“懒加载”·。// 饱汉// UnThreadSafepublic class Singleton1 { private static Singleton1 singleton = null; private Singleton1() { } public static Si原创 2021-09-16 14:14:06 · 132 阅读 · 0 评论 -
java中的锁
1. Java 锁可中断锁:在等待获取锁过程中可中断。synchronized就不是可中断锁,而Lock是可中断锁。读写锁:对资源读取和写入的时候拆分为2部分处理,一个读锁和一个写锁。读的时候可以多线程一起读,写的时候必须同步地写。ReadWriteLock就是读写锁,它是一个接口,ReentrantReadWriteLock实现了这个接口。可以通过readLock()获取读锁,通过writeLock()获取写锁。乐观锁: (冲突检测和数据更新)很乐观,每次去拿数据的时候都认为别人不会修改,所原创 2021-09-16 13:15:48 · 242 阅读 · 0 评论 -
java面试
1. Java中有哪些锁 ? CAS 使用场景。2. synchronized 和 reentranlock 区别。 AQS .3. 线程生命周期, Java线程和linux线程的关系?4. 线程调度算法,有没有了解过CFS算法。5. linux常用命令。再怎么在linux 运行项目 (shell 脚本)6. 使用过的java 集合类7. hashmap的put流程,concurrentHashmap 为什么是线程安全的。8. jvm内存结构,程序计数器的作用?9. 堆外内存? 直接内存原创 2021-09-15 17:09:53 · 97 阅读 · 0 评论 -
opencv 练习
OpenCV中的绘图功能import cv2 as cvimport numpy as np# 创建黑色的图像img = np.zeros((512, 512, 3), np.uint8)# 绘制一条厚度为5的蓝色对角线cv.line(img, (0, 0), (511, 511), (255, 0, 0), 5)cv.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)cv.circle(img, (447, 63), 63, (0原创 2021-09-10 15:49:06 · 136 阅读 · 0 评论 -
centos/windows --> python,python-opencv
install python$ sudo yum install python38 -y# 从SCL中使用python3,你需要一行命令来启用Python3:$ scl enable python38 <command># 您还可以使用Python编译器来调用一个bash shell:$ scl enable python38 bash# prepare pip3 install scikit-build pip3 install cmake ln -s /usr/bi原创 2021-09-10 14:38:03 · 124 阅读 · 0 评论 -
ubuntu opencv
install pythonsudo apt install python3.8python3.8 --version# install pipapt install python3-pipinstall python-opencv# prepare pip3 install scikit-build pip3 install cmake ln -s /usr/bin/ninja /usr/bin/ninja-build# install opencvpip3 install原创 2021-09-10 14:05:48 · 99 阅读 · 0 评论 -
ubuntu python
在ubuntu上安装Python有两种方法以root用户或具有sudo访问权限的用户身份运行以下命令,以更新软件包列表并安装必备组件:sudo apt updatesudo apt install software-properties-common将Deadsnakes PPA添加到系统的来源列表中:sudo add-apt-repository ppa:deadsnakes/ppa启用存储库后,请使用以下命令安装Python 3.8:sudo apt install pyt原创 2021-09-10 13:32:44 · 138 阅读 · 0 评论 -
wsl常用命令
ref: https://docs.microsoft.com/zh-cn/windows/wsl/reference设置默认版本wsl --set-default-version 2检查分配给每个已安装的 Linux 分发版的 WSL 版本wsl -l -vwsl --list --verbose将分发版设置为受某一 WSL 版本支持wsl --set-version <distribution name> <versionNumber>用于运行 Linux 命令的原创 2021-09-10 10:15:32 · 2151 阅读 · 0 评论 -
Ubuntu 安装git及git命令
1、检查git是否已经安装,输入git version命令即可,如果没有显示版本号表示没有安装git2、安装gitsudo apt-get install git3、配置git全局环境git config --global user.name "用户名"git config --global user.email "邮箱地址"4、生成ssh密钥ssh-keygen -C 'you email address@gmail.com' -t rsa会在用户目录~/.ssh/下建立相应的密钥文件。原创 2021-09-09 15:55:24 · 12568 阅读 · 0 评论 -
wsl centos
ref: https://zhuanlan.zhihu.com/p/347461016install centosWindows的应用商店中有一些不错的linux发行版,包括很多同学都很喜欢的ubuntu,但是个人比较熟悉使用centos,而应用商店中的centos是要收费的,不过好在github上面有CENTOS官方开源的安装包,我们这里使用github上的安装包进行安装。如果使用应用商店中的发行版直接点击安装即可。随后便可以跳过下面的centos的安装部分。首先我们去centos的GitHub页原创 2021-09-09 14:46:51 · 410 阅读 · 0 评论 -
spring事务
事务的传播机制事务的传播性一般用在事务嵌套的场景,比如一个事务方法里面调用了另外一个事务方法,那么两个方法是各自作为独立的方法提交还是内层的事务合并到外层的事务一起提交,这就是需要事务传播机制的配置来确定怎么样执行。常用的事务传播机制如下:PROPAGATION_REQUIRED 支持当前事务,如果当前没有事务,就新建一个事务Spring默认的传播机制。如果外层有事务,则当前事务加入到外层事务,一块提交,一块回滚。如果外层没有事务,新建一个事务执行explain:ServiceA {原创 2021-09-08 14:58:51 · 572 阅读 · 0 评论 -
数据库事务
本文转载自: https://www.cnblogs.com/limuzi1994/p/9684083.html事务四大属性1、原子性(Atomicity)事务包含的所有操作要么全部成功,要么全部失败回滚2、一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。举例来说,假设用户A和用户B两者的钱加起来一共是1000,那么不管A和B之间如何转账、转几次账,事务结束后两个用户的钱相加起来应该还得是10原创 2021-09-08 14:28:18 · 483 阅读 · 0 评论 -
windows bat
startServer.bat@echo off>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"if '%errorlevel%' NEQ '0' (goto UACPrompt) else ( goto gotAdmin ):UACPromptecho Set UAC = CreateObject^("Shell.Application"^) > "%t原创 2021-09-06 16:58:17 · 109 阅读 · 0 评论 -
linux常用命令
## docker原创 2021-09-03 11:12:03 · 167 阅读 · 0 评论 -
java多线程那点事|提升java能力
java多线程那点事|提升java能力原创 2021-07-26 15:48:43 · 144 阅读 · 0 评论 -
spring ioc
bean --- spring bean --- 完成spring bean 生命周期的 java 对象java对象 -- 对象 java对象不一定是spring bean,没有经过spring bean 的生命周期。spring bean 生命周期spring的bean生命周期其实最核心的分为4个步骤,实例化和初始化的区别:实例化是在jvm的堆中创建了这个对象实例,此时它只是一个空的对象,所有的属性为null。而初始化的过程就是讲对象依赖的一些属性进行赋值之后,调用某些方法来开启一些默认加载原创 2021-07-08 10:28:52 · 108 阅读 · 0 评论 -
go beego bee
官网: https://golang.google.cn/ 1.install gohttps://golang.google.cn/doc/installconfiggo env查看 go 环境gopath:go命令依赖一个重要的环境变量:$GOPATHGOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号;当有多个GOPATH时默认将go get获取的包存放在第一个目录下goroot: golang 的安装路径gobin : ${goroot原创 2021-01-30 19:05:49 · 245 阅读 · 0 评论 -
docker compose->flink
docker-compose.yamlversion: "3.7"services: jobmanager: image: flink container_name: jobmanager hostname: jobmanager expose: - "6123" ports: - "8081:8081" command: jobmanager environment: - JOB_MANAGER_RPC_.原创 2021-05-27 14:06:18 · 147 阅读 · 0 评论