日常随笔
随便写写
BLUE_BULE
思路很简单,细节是魔鬼。
展开
-
TCP可靠传输如何保证?
应用数据被分割成TCP认为最合适发送的数据块;超时重传;当tcp发送一个数据块后,会开启定时器,如果在一段时间内没有收到接收方的确认,那么就会重新发送;校验和:tcp会保持首部和数据的校验和,检测数据在传输过程中是否发送变化;(出现差错进行丢弃)TCP接收端会丢弃重复的数据;乱序重排;IP数据报发送可能会乱序,TCP会对失序的数据进行排序然后交给应用层;流量控制;TCP通过滑动窗口实现流量控制;控制发送方发送速率,保证接收方来得及接收;滑动窗口的大小是动态调整的,发送..原创 2020-08-21 09:35:31 · 270 阅读 · 0 评论 -
MVCC如何实现提交读和可重复读?
MVCC(多版本并发控制)多版本并发控制(MultiVersion Concurrency Control,简称 MVCC 或 MCC),也称为多版本数据库:不用加任何锁, 对各个时间点生成一致性数据快照 (Snapshot), MVCC 的实现是通过保存数据在某个时间点的快照来实现的,并用这个快照来提供一定级别事务隔离。同一条记录在系统中可以存在多个版本。InnoDB在实现MVCC的时候用到一致性视图,用于支持可重复读(事务启动时候拍快照ReadView)和提交读(每次执行select拍快照ReadV原创 2020-08-21 09:21:08 · 3664 阅读 · 4 评论 -
AQS学习小随笔
AQS(AbstractQueuedSynchronizer)更像是一个管理线程的工具类,线程的阻塞和接触阻塞,等待队列的管理,高效解决这些繁琐的问题,工具类只需要去关注业务逻辑实现;AQS是一个用于构建锁、同步器、协作工具类的工具类(框架),有了AQS之后方便了很多构建线程协作的并发工具功能实现。//AQS是抽象类,继承AbstractOwnableSynchronizer为了查看当前获取获取锁的线程,方便监控//很多工具类对AQS进行了继承public abstract class Abs原创 2020-08-08 19:18:46 · 226 阅读 · 0 评论 -
集合源码小随笔
集合源码学习ArrayListDEFAULT_CAPACITY初始容量大小默认是10;int size;(表示当前数组大小,非线程安全);modCount统计当前数组被修改的版本次数,结构有变化就+1;注释允许put null值;随机访问时间复杂度为O(1);非线程安全,多线程使用Collections下的synchronizedList;(也可以使用JUC下的CopyOnWriteList);foreach和迭代器中数组大小改变,会抛出异常;初始化无参数构造器(数组大小为空原创 2020-07-25 08:47:52 · 220 阅读 · 0 评论 -
事务隔离(脏读、幻读与不可重复读)
事务事务(Transaction),在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transa...原创 2019-12-24 19:50:18 · 736 阅读 · 0 评论 -
你从未想到的位运算实现字母大小写转换
大小写转换统一转成大写:ch & 0b11011111 简写:ch & 0xDF统一转成小写:ch | 0b00100000 简写:ch | 0x20Tips:比较的时候注意加上小括号,因为位运算优先级比较低。举例原创 2020-05-13 23:22:05 · 310 阅读 · 0 评论 -
分享130 余个令你眼前一亮的网站,总有一个让你钟意
目录搞学习找书籍冷知识 / 黑科技写代码资源搜索小工具导航页(工具集)看视频学设计搞文档找图片搞学习CSDN: https://www.csdn.net/TED(最优质的演讲):https://www.ted.com/谷粉学术:https://gfsoso.99lb.net/scholar.html大学资源网:http://www.dxzy163.com/简答题:http://ww...转载 2020-05-07 18:02:28 · 1639 阅读 · 1 评论 -
Linux驱动程序Hello World
目录程序源码编译命令运行效果截图解决方案一:解决方案二:程序源码hello.c#include "linux/init.h"#include "linux/module.h"MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_INFO "Hello World Start !\n"); re...原创 2020-05-05 17:35:12 · 474 阅读 · 0 评论 -
获取和替换#{}中的内容
package StringTest;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { String str = "select * from emp where nam...原创 2020-04-27 14:15:03 · 634 阅读 · 0 评论 -
Calendar实现日历
package Calendar;import java.util.Calendar;import java.util.Scanner;public class CalTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Cale...原创 2020-04-27 13:53:05 · 471 阅读 · 0 评论 -
AndroidStudio——DevEco
Deveco云测试最近学习正在Android Studio,学习的过程中就免不了测试,但是Android的测试又不是简单的程序测试只需要电脑就可以完成,它还需要连接手机或者创建虚拟机,这就会遇到一系列麻烦。这里介绍一种华为的Deveco云测试方法,不需要连接手机,不需要下载虚拟机,在浏览器上就可以完成测试Deveco安装方法打开Android Studio软件,下载安装DevEco选择f...原创 2020-02-26 23:34:08 · 3031 阅读 · 2 评论 -
悲观锁与乐观锁(数据库)
悲观锁与乐观锁面对可能出现的并发问题的事务,不用事务隔离机制来调整,使用由SQL语句级别的操作来控制资源的上锁,排斥其他并发事务悲观锁(Pessimistic Lock)定义悲观锁,正如其名,具有强烈的独占和排他特性。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度。因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的...原创 2020-02-15 00:15:39 · 210 阅读 · 0 评论