摘要: 事务 事务的组成可由一条非常简单的SQL语句组成,也可由一组复杂的SQL语句组成。 特征 事务具有以下特征: (1)在数据提交时,可以确保要么所有修改都已保存,要么所有修改不保存; (2)事务是访问并更新数据库各种数据项的一个执行单元; (3)在innodb下,每一条语句都是事务,可以通过set a 阅读全文
posted @ 2021-11-21 15:40 MrJuJu 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 在讲MYSQL的索引之前,先了解一下MYSQL的B+树,首先它是多路平衡搜索树,为什么MYSQL使用的是B+树,因为数据存储在磁盘中,而树的高度决定了访问磁盘的次数,所以选择B+树;MYSQL的B+树结构如下图所示: MYSQL的B+树它具有以下特点: (1)叶子节点当中存储所有的数据 (2)非叶子 阅读全文
posted @ 2021-11-12 23:55 MrJuJu 阅读(40) 评论(0) 推荐(0) 编辑
摘要: Epoll是Linux IO的多路复用的机制,是select/poll的增强版本,在Linux内核fs/eventpoll.c中可以查看epoll的具体的实现。 一、epoll数据结构 学习任何组件,首先得知道它有什么数据结构或者数据类型,epoll主要有两个结构体:eventpoll和epitem 阅读全文
posted @ 2021-10-17 20:34 MrJuJu 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 一、前言 在讲网络协议栈前,先理解一个数据包在网络传输是一个怎么样的流程,如下图所示。 正常的流程是网卡接收到数据后,把数据copy到协议栈(sk_buff),协议栈把sk_buff数据解析完后再把数据放到recv_buff,此时应用程序调用recv把数据从协议栈copy到应用程序;发送数据包,则与 阅读全文
posted @ 2021-10-11 17:07 MrJuJu 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 一、背景 在工作项目使用多进程、多线程过程中,因争夺资源而造成一种资源竞态,所以需加锁处理。如下图所示,线程A想获取线程B的锁,线程B想获取线程C的锁,线程 C 想获取线程D的锁, 线程D想获取线程A的锁,从而构建了一个资源获取环,当进程或者线程申请的锁处于相互交叉锁住的情况,就会出现死锁,它们将无 阅读全文
posted @ 2021-10-06 15:39 MrJuJu 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 一、协程的由来 从IO同步和异步的优缺点分析如下: IO同步优点就是sockfd管理方便,操作逻辑清晰;缺点是程序依赖epoll_wait的循环响应速度,程序性能差。 IO异步优点就是子模块好规划,程序性能高;缺点就是逻辑理解有点难度,还会出现多个线程共用一个sockfd,此时需要避免在IO操作时, 阅读全文
posted @ 2021-09-24 00:09 MrJuJu 阅读(194) 评论(0) 推荐(0) 编辑
摘要: package main import ( "C" "fmt" "syscall" "unsafe") //由于C++和go基本数据类型的不同,在go调用c++DLL时,只能传递指针//c++:int > go:uintptr(n)//c++:char* >go:uintptr(unsafe.Poi 阅读全文
posted @ 2021-07-08 00:15 MrJuJu 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 一、希尔排序 1.初次取序列的一半为增量,以后每次减半,直到增量为1(round(n/2) >1) 2.每组遍历 3.组内排序 1 //希尔排序 2 int shell_sort(int *data, int len) 3 { 4 int gap = 0; 5 int i = 0, j = 0; 6 阅读全文
posted @ 2021-03-13 17:50 MrJuJu 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 土拨鼠之并发编程 为什么要学习go语言?go语言好在哪里?学习go语言后你能收获什么?这三个问题是我一开始学习go语言时反复在思考的问题,我是因为go语言天生支持多核、高并发才学习go语言的;哎!想想如果你的同事,朋友问你,听说你学习go语言,go语言有什么特点呀?我一想到的就是goroutine、 阅读全文
posted @ 2020-04-02 23:52 MrJuJu 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 最近工作涉及到一些关于OpenCV的内容,在这忙碌之余说说在go语言中如何使用OpenCV;首先编译OpenCV必须使用mingw-w64和CMake两个工具,花了大半天的功夫才编译成功,所以特地的把整个过程记录了下来,避免鼠娃们少进坑。 一、下载相关安装包 (1)gocv的下载,在命令行中执行,前 阅读全文
posted @ 2020-03-22 10:39 MrJuJu 阅读(367) 评论(0) 推荐(0) 编辑