- 博客(197)
- 资源 (19)
- 收藏
- 关注
原创 SpringBoot 集成 Spring Data Mongodb 操作 MongoDB 详解
SpringBoot 集成 Spring Data Mongodb 操作 MongoDB 详解
2023-03-22 14:45:34
4696
1
原创 关于java.util.concurrent.RejectedExecutionException: event executor terminated
多线程
2022-06-30 10:42:01
19813
原创 go动态限制并发数量
因为go从语言层面支持并发,所以面试百分百会问到并发的问题,比如说控制go并发数量的方式有哪些?GO实现控制最多有10个并发线程带有缓冲大小的通道package mainimport ( "fmt" "sync")func main() { count := 10 // 最大支持并发 sum := 100 // 任务总数 wg := sync.WaitGroup{} //控制主协程等待所有子协程执行完之后再退出。 c := make(chan struct{}, cou
2022-05-10 09:20:02
2500
原创 JNI中jfloatArray与jfloat*的相互转换
近期在写JNI时,本地native传入的数据类型是float[] xx,对应的jni的参数类型即为jfloatArray xx,那么如何读取jfloatArray xx中的数据呢,具体详见本人的实践代码部分“jfloatArray转vector<float>”。 同时在JNI中本人还遇到需要将std::vector<float>类型的数据转为jfloatArray类型后作为返回值返回。该部分的实现详见本人实践代码部分“vector<float>转jfl...
2022-04-27 13:52:23
1446
原创 Ubuntu18.04完全卸载CUDA
cuda的卸载方法网上都有很多,这些方法大同小异,几乎都是错的,我在卸载cuda时基本试了个遍,各种踩坑。能查到的方法一般都是从官方文档搬过来的,然而这种使用apt-get --purge remove命令的方法并不能将cuda完全卸掉。卸载的实现方法那么如何正确、完全的卸载cuda呢?其实cuda安装时就已经准备好了卸载的接口,卸载程序在/usr/local/cuda-xx.x/bin下,需要注意的是cuda10.0及之前的版本卸载程序名为uninstall_cuda_xx.x.pl,而c
2022-04-20 15:50:06
9439
3
原创 MXNet或tensorflow缺少libcudart.so.11.0和libcudnn.so.8解决方法
问题: 安装tensorflow-gpu,在测试是否调用GPU时出现如下问题:Could not load dynamic library ‘libcudart.so.11.0’; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory;解决方法:为了解决这个问题,笔者尝试了各种网上的解决教程,都无法解决。网上查找时,如下解决方法:方法一:用:conda inst..
2022-04-19 10:13:02
1772
原创 使用im2rec.py生成数据集
第一步:在中anaconda找到im2rec.py文件,并且准备好自己的数据。路径:../anaconda3/lib/python3.x/site-packages/mxnet/tools/im2rec.py关于数据:我的是分类任务,文件目录结构如下: -mydata -0 -1.png -2.png -xx.png -1 -1.png -...
2022-04-15 09:20:30
353
原创 mysql占用内存过高优化
为了装mysql环境测试,装上后发现启动后MySQL占用内存了很大,达8百多兆。网上搜索了一下,有人说my.ini。再也没见再详细的了..只好打开my.ini逐行的看,虽然英文差了点,不过多少M还是看得明的更改后如下:innodb_buffer_pool_size=576M ->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀query_cache_size=100M ->16M 查询缓存tmp_table_size=102M ->64M 临时表大小key_b
2022-04-11 13:47:29
3650
原创 Golang同步和异步执行
同步适合多个连续执行的,每一步的执行依赖于上一步操作,异步执行则和任务执行顺序无关(如从10个站点抓取数据)同步执行类RunnerAsync支持返回超时检测,系统中断检测错误常量定义,task/err.gopackage task import "errors" //超时错误var ErrTimeout = errors.New("received timeout") //操作系统系统中断错误var ErrInterrupt = errors.New("received
2022-03-31 09:30:31
4423
1
原创 安装后mysqld.exe内存占用内存超过400-800M的问题
更改后如下:innodb_buffer_pool_size=576M //->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀query_cache_size=100M //->16M 查询缓存tmp_table_size=102M //->64M 临时表大小key_buffer_size=256m //->32M重启mysql服务后,虚拟内存降到200以下。另外mysql安装目录下有几个文件:my-huge.ini 、my-large.
2022-03-31 09:12:30
1307
原创 大批量数据多线程高效批量处理
工作中遇到的场景,这里写个例子出来,实际应用比此处更为健壮和完善应用场景:对一张表10万条数据(或100万或1亿+)进行更新操作或写入操作;菜鸟是一条一条的执行吧,这显然不行啊我在实际项目中是这样应用的, 批量更新!当然这显然是不够的 要线程批量更新才对吧!怎么做呢?举例1:10万条数据 ,我1000条1000条的处理 就是,10万/1000 = 100 ,这里我就用100个线程同时处理,每个线程负责1000条数据,这里有个关键点,处理的数据不能重复!给个代码示例吧:线程
2022-03-30 17:01:32
4315
原创 linux下LVS搭建负载均衡集群
常用的负载均衡开源软件有: nginx、lvs、keepalived商业的硬件负载设备: F5、NetscaleLVS是一个实现负载均衡集群的开源软件项目;LVS架构从逻辑上可分为调度层(Director)、server集群层(Real server)和共享存储层;LVS可分为三种工作模式:NAT(调度器将请求的目标ip即vip地址改为Real server的ip, 返回的数据包也经过调度器,调度器再把源地址修改为vip)TUN(调度器将请求来的数据包封装加密通过ip隧道转发到.
2022-03-25 16:43:07
493
原创 LVS和转发模式
几个术语和缩写cip:Client IP,客户端地址vip:Virtual IP,LVS实例IPrip:Real IP,后端RS地址RS: Real Server 后端真正提供服务的机器LB: Load Balance 负载均衡器LVS: Linux Virtual Serversip: source ipdip: destinationLVS的几种转发模式DR模型 -- (Director Routing-直接路由) NAT模型 -- (NetWork Address Tra
2022-03-25 16:35:43
1175
原创 MySQL 8.0主从(Master-Slave)配置
MySQL 主从复制的方式有多种,本文主要演示基于基于日志(binlog)的主从复制方式。MySQL 主从复制(也称 A/B 复制) 的原理 Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件, 这些记录叫做二进制日志事件(binary log events); Slave 通过 I/O 线程读取 Master 中的 binary log events 并写入到它的中继日志(relay log); Slave 重做中继日志中
2022-03-24 10:08:53
6705
原创 IOS移动应用跳转支付宝
由于近期项目需要通过WKWebView内嵌的h5来实现具体需求,而且需要进行支付宝支付。解决方法:问题1:通过WKWebView的代理拦截请求的URL,捕获支付宝的链接:-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decis
2022-03-17 11:01:18
1345
原创 IOS移动应用跳转微信小程序
有项目使用到了IOS移动应用跳转微信小程序支付的 因为对接合作的银行费率低没有移动应用SDK于H5支付SDK 无奈只能使用此方式 官网文档写的很简洁明了第一步登录苹果开发者中心配置1.登录苹果开发者中心 打开 Associated Domains2.在ios项目里面配置 applinks,applinks:你的域名,比如 applinks:baidu.com ,baidu.com就是域前面是固定格式(不要https://,不要加路径path)第二步 服务器配置《必须配置》1)创建
2022-03-12 14:49:00
8547
原创 golang 交叉编译C++ dll配置文件
调用c++ 报%1 is not a valid Win32 application开发环境:win64位C++ dll 为32位首先遇到的坑就是环境的配置,调用了一个之前C++写的dll,一直报错:%1 is not a valid Win32 application.就怀疑是否是dll出了问题,使用C++调用,正常运行,排除dll的问题,然后怀疑是否是golang调用方法问题,这里简要说一下golang调用dll的三种方法,使用了C语言编写了一个最基本的dll,只包含hell
2022-03-08 11:24:13
1014
原创 JNI C++调用Java、JAVA调用C++代码说明
C++代码:#include "video1_TestNative.h" #include <iostream> using namespace std; JNIEXPORT void JNICALL Java_video1_TestNative_sayHello(JNIEnv * env, jobject obj){ cout<<"Hello Native Test !"<<endl; //因为test不是静态函数,所以传进来的
2022-03-01 14:34:17
132
原创 Ubuntu18.04安装cuda11.1训练使用
显卡型号:丽台a4000NVIDIA驱动版本:470安装的CUDA版本:11.1第一步:在NVIDIA官网选择与系统相对应的版本下载地址:CUDA Toolkit Archive | NVIDIA Developer在终端下运行第二张截图中的两行命令·安装细节 选择continue 第二步:配置环境变量打开文件gedit ~/.bashrc在文件末尾加上下面两行export PATH=/usr/local/cuda-11.1/bin${P..
2022-01-06 10:41:57
829
原创 ubuntu操作命令
查看 显卡lspci |grep -i vga安装sshsudo apt-get install openssh-server修改IPsudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0sudo route add default gw 192.168.2.254.Ubuntu IP设置DNS 修改/etc/resolv.conf,在其中加入nameserver DNS的地址1 和 nameserver DNS的地址2 完成。5..
2021-12-14 15:06:12
768
原创 GO exe生成图标版本信息
为什么要添加图标和详细信息作为桌面程序,有一个图标,显得更正式一些。详细信息有版本号方便做版本识别。算了,编不下去了。不管那么多,反正别人有这些,你就应该有这些功能(无奈)。golang 作为一个后端语言,对windows 界面编程支持不是那么友好,直接添加图标和详细信息有一定难度。还好有第三方库–GoVersionInfo,可以帮助我们解决这一难题。GoVersionInfo是用于Go语言的Microsoft Windows文件属性/版本信息和图标资源生成器程序包将创建一个syso文件,其中.
2021-11-11 11:44:08
1764
1
原创 Golang 并发之锁
Golang sync包提供了基础的异步操作方法,包括互斥锁Mutex,执行一次Once和并发等待组WaitGroup。本文主要介绍sync包提供的这些功能的基本使用方法。Mutex: 互斥锁 RWMutex:读写锁 WaitGroup:并发等待组 Once:执行一次 Cond:信号量 Pool:临时对象池 Map:自带锁的map二. sync.Mutexsync.Mutex称为互斥锁,常用在并发编程里面。协程是一种用户态的轻量级线程。(所以我们可以用线程的思想去理解)互斥锁的
2021-10-16 10:48:37
1060
原创 Golang并发模型之
控制并发有三种种经典的方式,一种是通过channel通知实现并发控制 一种是WaitGroup,另外一种就是Context。1. 使用最基本通过channel通知实现并发控制无缓冲通道无缓冲的通道指的是通道的大小为0,也就是说,这种类型的通道在接收前没有能力保存任何值,它要求发送 goroutine 和接收 goroutine 同时准备好,才可以完成发送和接收操作。从上面无缓冲的通道定义来看,发送 goroutine 和接收 gouroutine 必须是同步的,同时准备后,如果没有同时准.
2021-10-16 09:44:01
152
原创 当Golang遇到高并发秒杀
遇到go也是工作上的调整,工作上做架构相关的事情,对新发展比较火爆的语言肯定要关注下。就这样步入了GO语言的世界,GO给我带来了全新的体验;一直做一件事情的人往往会被一件事情所困,开始实践GO语言的时候总感觉哪哪都别扭,特别是把结构体当成类,还有结构体的继承,写面向对想多了开始还真扭不过来。不过写的多了渐渐地也习惯了,甚至感觉越来越顺眼。在熟悉了GO一段时间后,也停止了一会,脑子里一直在想着GO的简洁(代码风格一致,用起来简练不拖泥带水,部署极其简单,编译速度用快来形容),能给项目系统和架构带来哪些
2021-10-16 09:36:49
1101
原创 Go并发详解之一
多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。并发模式之内核这种并发模式的内核只需要协程和通道就够了。协程负责执行代码,通道负责在协程之间传递事件。不久前,并发编程是个非常困难的事。要...
2021-10-15 15:59:45
312
原创 Go语言系列之日志库zap
在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能:能够将事件记录到文件中,而不是应用程序控制台。 日志切割-能够根据文件大小、时间或间隔等来切割日志文件。 支持不同的日志级别。例如INFO,DEBUG,ERROR等。 能够打印基本信息,如调用文件/函数名和行号,日志时间等。Go自带log库的优势和劣势 优势 它最大的优点是使用非常简单。我们可以设置任何io.Writer作为日志记录输出并向其发送要写入的日志。 劣势 仅限基本的日志级别 只有一个Prin
2021-09-10 16:40:43
826
原创 Golang 打包发布到各个平台
使用Golang方便之处就在于可以直接打包二进制文件不需要配置Golang的环境和依赖就可以直接跑起来以及性能提升比Java好,所以我部分项目是使用Golang开发开发环境:Windows 10 GoLand 2020.2 Go 1.15.1打包发布到Centosset GOOS=linuxset GOARCH=amd64# open in Terminalgo build main.gogo build ./ 多文件时 打包发布到Windowsset G.
2021-08-08 09:51:30
1649
Printing.zip
2020-04-11
Elasticsearch权威指南-中文.pdf
2019-03-01
java实现网页聊天demo
2018-03-28
Lombok插件
2018-03-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人