笔记
NoctCYQ
这个作者很懒,什么都没留下…
展开
-
JAVA垃圾回收机制
JAVA相比C++简化了一些,取消了指针,新增了垃圾回收机制。垃圾回收主要是针对堆和方法。垃圾回收前首先要判断垃圾,判断某个对象是否是垃圾的算法包括引用计数法和可达性分析法。清除算法包括标记-清理法;标记-压缩法;复制法;分代收集法。分代收集就是将堆分为新生代和老年代。新生代中对象寿命较短,采用复制法;老年代采用标记法。...原创 2020-07-29 20:54:40 · 120 阅读 · 0 评论 -
悲观锁,乐观锁,共享锁,排他锁,自旋锁
悲观锁比较悲观,认为并发大概率导致冲突,所以要加锁防止并发。乐观锁比较乐观,认为并发小概率导致冲突,所以仅在提交更新时监测冲突。悲观锁包括共享锁(读锁)和排它锁(写锁)。共享锁就是多个事务可以同时读某一资源,而排他锁意味着一个事务获得写权限时,其他事务只能等待。而自旋锁是排它锁的一种实现。当线程获取锁而锁被其他线程占用的时候,线程不会发生状态转换,保持active的状态。自旋锁的优点是执行速度快,缺点是使用不当会导致CPU占用率高。此外,自旋锁还可以关注公平性和可重入性的问题。...原创 2020-07-29 20:06:20 · 512 阅读 · 0 评论 -
TCP拥塞控制机制
当延迟出现时,为防止通讯双方不断重传,在网络中注入过多数据,所以建立了拥塞控制机制。而拥塞控制包括四个算法:慢启动,拥塞避免,快重传,快恢复。先来介绍一些背景:1.TCP有一个计时器,可以判断超时。2.快速重传指接收方收到失序报文段后立刻发出重传确认。而快速重传算法规定发送方一旦收到3个重复确认就立即重传,不用等到计时器超时。以上是背景。建立连接后首先进入慢启动算法,以1为拥塞窗口,每次传输成功将窗口大小翻倍,直到窗口大小达到阈值。达到阈值后开始拥塞避免算法,控制窗口的递增速度从翻倍的指数级减小原创 2020-07-29 19:56:33 · 312 阅读 · 0 评论 -
多人GitHub或Gitee开发需要的git代码基础
按顺序整理一下多人合作开发一个项目时,作为开发者需要经常使用的git代码和需要的操作1.git clone 项目地址我们参与一个项目时,经常是在已有的代码上做修改。这时,clone可以从仓库中获取代码2.git checkout 分支名称很多项目中会将最新版本和稳定版本分开,而作为开发人员,我们需要拿到的经常是最新版本,所以需要用checkout命令切换到需要的分支。在此过程中我们可以用git branch -a查看分支、用git checkout -r创建分支。3.fork将参与开发的仓库“原创 2020-06-10 21:19:44 · 184 阅读 · 0 评论 -
Python的self
分享一下对Python的self的理解。水平不高,可能有错。。。1 self是什么self是Python类方法的第一个变量,是约定俗成的,一般写self,也可以写one,your name等。2 什么时候要写self原创 2020-05-13 08:56:40 · 130 阅读 · 0 评论 -
小白需要知道的git命令
小白需要知道的Git命令git remote addgit remote -vgit add file_name/git commit -m “备注”git pullgit push origin master原创 2020-05-09 01:10:15 · 133 阅读 · 0 评论